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

Langage SQL Discussion :

Left join avec 3 tables


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Left join avec 3 tables
    Bonjour,
    Je suppose que ma question est stupide, car un left join c'est fait pour faire une jointure entre 2 tables.

    Néanmoins...
    Avec mysql3 je pouvais faire des left join avec 3 tables, mais ça ne fonctionne plus avec mysql5.

    avec mysql 5, on est obligé d'écrire les jointures gauches dans l'ordre.
    ex. : on ne dit pas
    select * from a, b left join c on a.x=c.x
    mais
    select * from b, a left join c on a.x=c.x

    et du coup, je ne sais pas comment corriger des req qui fonctionnaient avec mysql 3, et qui font un left join sur 2 attributs et 3 tables !

    en fait j'ai besoin de faire ça :
    select * from T1 left join T2 on T1.a=T2.a, T3 left join T4 on T3.b=T4.b and T2.c=T4.c

    mais ça ne fonctionne pas car je n'ai pas le droit d'écrire T2.c= si T2 n'apparait pas juste avant le left join...

    alors, question stupide ou BD mal faite ?
    à+
    Mathias.

  2. #2
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    On ne dit ni l'un ni l'autre. Ou bien on écrit tout en sql ansi 92 ou tout avec des clauses where mais pas un mixe des 2. Il n'y a pas de virgule dans le clause FROM en sql ansi 92:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select * 
    from T1 
    left join T2 on T1.a=T2.a
    left join T4 on T2.c=T4.c
    left join T3 on T3.b=T4.b
    vérifier si c'est bien left dans tout les cas (sinon mettre right en cas de besoin)

Discussions similaires

  1. 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
  2. left join avec un champ d'une troisième table
    Par sevy1881 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/07/2010, 12h09
  3. Left join avec plusieurs table & plusieurs champs
    Par jayfaze dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 16/12/2009, 15h01
  4. LEFT OUTER JOIN avec trois tables
    Par Space Cowboy dans le forum Requêtes
    Réponses: 8
    Dernier message: 19/08/2008, 14h51
  5. [Access] Requête avec LEFT JOIN et 3 tables
    Par estelledany dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/06/2006, 13h27

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