IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

problème d'incompréhension avec les jointures


Sujet :

Requêtes MySQL

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Par défaut problème d'incompréhension avec les jointures
    Bonjour à tous,

    Voici mon problème, j'essaye de faire une requête afin de récupérer des informations des candidats qui ont laisser un cv sur le site.


    Le problème est que, dès que je rentre cette ligne dans la requête, l'un des 2 candidats disparait alors qu'il devrait être présent.

    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT  c.id as id,c.nom as nom,c.prenom as prenom,
    DAY(c.date_envois) as Jour, MONTH(c.date_envois) as Mois, YEAR(c.date_envois) as Annee,
    s.nom as nom_secteur,
    a.titre as titre_annonce,
    DISTINCT SUM(DISTINCT pt.temp_reel) As total_xp
    FROM postule_candidat  AS c
    LEFT JOIN secteur AS s                      ON s.id              = c.fk_id_secteur
    LEFT JOIN annonce As a                      ON a.fk_id_job       = c.fk_id_post
    LEFT JOIN job As j                          ON j.id              = a.fk_id_job
    LEFT JOIN postule_diplome_candidat  As dc   ON dc.fk_id_candidat = c.id
    LEFT JOIN postule_experience_candidat As ec ON ec.fk_id_candidat = c.id
    LEFT JOIN postule_temp As pt                ON pt.id             = ec.fk_id_temp
    WHERE c.id > 0
    La ligne qui fait tout foirer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DISTINCT SUM(DISTINCT pt.temp_reel) As total_xp
    Le code se présente actuellement sous cette forme en php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    $candidat = new Candidat();
     
    $requete =          ' SELECT  c.id as id,c.nom as nom,c.prenom as prenom,';
    $requete = $requete.' DAY(c.date_envois) as Jour, MONTH(c.date_envois) as Mois, YEAR(c.date_envois) as Annee,';
    $requete = $requete.' s.nom as nom_secteur,';
    $requete = $requete.' a.titre as titre_annonce,';
    $requete = $requete.' SUM(DISTINCTpt.temp_reel) As total_xp';
    $requete = $requete.' FROM postule_candidat  AS c';
    $requete = $requete.' LEFT JOIN secteur AS s                      ON s.id   fk_id_type_diplome  = '.$_POST["diplome_type"].')';
     
    if(!empty($_POST["fonction"])) $requete = $requete.' AND (ec.fk_id_diplome = '.$_POST["fonction"].')';
    $requete = $requete.' ORDER BY j.date_creation DESC';
    ?>
               = c.fk_id_secteur';
    $requete = $requete.' LEFT JOIN annonce As a                      ON a.fk_id_job       = c.fk_id_post';
    $requete = $requete.' LEFT JOIN job As j                          ON j.id              = a.fk_id_job';
    $requete = $requete.' LEFT JOIN postule_diplome_candidat  As dc   ON dc.fk_id_candidat = c.id';
    $requete = $requete.' LEFT JOIN postule_experience_candidat As ec ON ec.fk_id_candidat = c.id';
    $requete = $requete.' LEFT JOIN postule_temp As pt                ON pt.id             = ec.fk_id_temp';
    $requete = $requete.' WHERE c.id > 0';
    if(!empty($_POST["diplome_type"])) $requete = $requete.' AND (dc.fk_id_type_diplome  = '.$_POST["diplome_type"].')';
     
    if(!empty($_POST["fonction"])) $requete = $requete.' AND (ec.fk_id_diplome = '.$_POST["fonction"].')';
    $requete = $requete.' ORDER BY j.date_creation DESC';
    ?>
    Ce sont des requêtes crées dans la page php pour faire du multi requête par select.

    Je vous fournis également la base de données en pièce jointe

    Merci d'avance pour l'aide, car je sèche dessus depuis ce matin ^^
    Si vous avez des conseils pour optimiser ma requête, n'hésitez pas ^^
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème avec les jointures
    Par Akim13 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/05/2011, 16h02
  2. Problème avec les jointures
    Par xoum89 dans le forum Langage SQL
    Réponses: 16
    Dernier message: 28/03/2011, 21h41
  3. Problème avec les jointures
    Par exqo77 dans le forum JDBC
    Réponses: 6
    Dernier message: 17/02/2010, 10h06
  4. [MySQL] Problème avec les jointure pour un menu
    Par Glocman dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 31/07/2006, 17h44
  5. Réponses: 2
    Dernier message: 21/07/2005, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo