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 de requete


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations forums :
    Inscription : Décembre 2010
    Messages : 27
    Points : 28
    Points
    28
    Par défaut Problème de requete
    Bonjour, j'ai un petit problème de requete, Je vous explique :

    Je dispose de 3 tables :
    Une table FAMILLE(cdFam,nomFam,adFam,...)
    Une table STAGE(cdStage,dateStage,...)
    Une table PARTICIPATION_FAMILLE(cdFam,cdStage,nbStagiaires)

    Une famille peut participer à plusieurs stage et possède un nombre de stagiaire pour ceux ci

    Et je voudrais lister toutes les familles avec le nombre de stagiaires qu'elle prennent pour les stages numero 1 et numero 3

    Je fais donc la requete suivante avec 2 jointures externe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT f.cdFam AS codeFam,
    f.nomFam AS famille,
    f.adFam AS adresse,
    IFNULL(pfJ.nbStagiaire,'0') AS nbStagiaireJuillet,
    IFNULL(pfA.nbStagiaire,'0') AS nbStagiaireAout
    FROM famille f 
    LEFT JOIN participation_famille pfJ ON pfJ.cdFam=f.cdFam 
    LEFT JOIN participation_famille pfA ON pfA.cdFam=f.cdFam 
    WHERE 
    pfJ.cdStage=1
    AND pfA.cdStage=3

    Mais le problème c'est que malgré le fait que j'ai mis les deux LEFT JOIN dans la requête, la requete ne me liste que les familles qui sont inscrit pour les stages 3 et 1 en même temps alors que je voudrais qu'il me liste aussi les familles qui ne participent pas à ces stages et afficher alors le nbStagiaireJuillet et Aout à 0

    Voilà, Avez-vous une idée ?
    Merci d'avance,

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par lagra007 Voir le message
    B
    Mais le problème c'est que malgré le fait que j'ai mis les deux LEFT JOIN dans la requête, la requete ne me liste que les familles qui sont inscrit pour les stages 3 et 1 en même temps alors que je voudrais qu'il me liste aussi les familles qui ne participent pas à ces stages et afficher alors le nbStagiaireJuillet et Aout à 0

    Voilà, Avez-vous une idée ?
    Merci d'avance,
    EDIT:

    C'est le where qui élimine ceux qui n'ont pas fait de stage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT f.cdFam AS codeFam,
    f.nomFam AS famille,
    f.adFam AS adresse,
    IFNULL(pfJ.nbStagiaire,'0') AS nbStagiaireJuillet,
    IFNULL(pfA.nbStagiaire,'0') AS nbStagiaireAout
    FROM famille f 
    LEFT JOIN participation_famille pfJ ON pfJ.cdFam=f.cdFam  AND pfJ.cdStage=1
    LEFT JOIN participation_famille pfA ON pfA.cdFam=f.cdFam AND  pfA.cdStage=3

Discussions similaires

  1. [EJBQL] Problème de requete
    Par rivierem dans le forum Java EE
    Réponses: 3
    Dernier message: 16/10/2004, 10h05
  2. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  3. Problème de Requete...
    Par sebiv dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/04/2004, 16h21
  4. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 12h54
  5. Problème de requete multis-selections
    Par tripper.dim dans le forum SQL
    Réponses: 9
    Dernier message: 03/09/2003, 13h08

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