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 et SQL. Discussion :

left join avec un champ d'une troisième table


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 41
    Points : 37
    Points
    37
    Par défaut left join avec un champ d'une troisième table
    BONJOUR
    Je vous soumets une preoccupation
    Je veux bien pouvoir effectuer une requête left join avec 3 tables si cela est possible
    J’ai 3 tables : la table PRODUIT (numprod,poiprod),la table TRANSFERT(idtransfert,numprod,dest) et la table marquage(idmarquage,datmarquage)

    Voila comment je procède pour connaître la liste des produits(qui se trouve dans la table transfert) qui n’ont pas eu de marquage(ne se trouve pas dans la table marquage) avec un left join
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql= "SELECT TRANSFERT!numprod  FROM TRANSFERT LEFT JOIN marquage ON TRANSFERT. numprod  = marquage.[ numprod  ] WHERE (((marquage.[ numprod  ]) Is Null) And ((TRANSFERT!absent)=0)  ) order by TRANSFERT! numprod  "
    cette requête marche fort bien
    Maintenant je veux pouvoir afficher dans cette requête le champ poiprod (poids du produit) qui lui se trouve dans la table PRODUIT
    La table PRODUIT contient le champ numprod qui se trouve dans toutes les 3 tables
    Merci de me guider si cela est possible

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 755
    Points : 57 603
    Points
    57 603
    Billets dans le blog
    42
    Par défaut
    Bonjour,

    à priori, il suffit d’aliaser ta sous-requête LEFT JOIN (alias T) puis de faire la jointure avec la table PRODUIT.

    Ce qui donnerait :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT P.numprod, P.poiprod FROM
    (
      SELECT TRANSFERT.numprod  
      FROM TRANSFERT LEFT JOIN marquage 
      ON TRANSFERT.numprod  = marquage.numprod 
      WHERE (marquage.numprod Is Null And TRANSFERT.absent=0)
    )T
    INNER JOIN PRODUIT P
    ON T.numprod=P.numprod
    ORDER BY P.numprod ;

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Grand merci; ca marche

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

Discussions similaires

  1. [AC-2010] Alimneter une table avec les champs d'une autre table selon critères
    Par tibao276 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2014, 21h26
  2. Left join avec une condition dans l'autre table
    Par rj450 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 22/02/2013, 16h50
  3. Left join avec plusieurs table & plusieurs champs
    Par jayfaze dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 16/12/2009, 15h01
  4. [MySQL] Jointure: Avec deux champs d'une même table
    Par Vinuto dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/11/2008, 20h10
  5. LEFT JOIN avec Oracle 8i ne va pas... doit utiliser (+)
    Par loikiloik dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/04/2004, 16h38

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