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 :

Double jointure : aidez-moi please !


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Double jointure : aidez-moi please !
    Bonjour,

    Je cherche à obtenir un tableau dont chaque ligne donne les infos suivantes pour un trajet :
    - l'adresse de départ
    - l'adresse d'arrivée
    - l'ID du point de départ
    - l'ID du point d'arrivée

    Voici les 3 tables utilisées :

    T_TRAJET
    ID_POINT_DEPART
    ID_POINT_ARRIVEE

    T_POINTS (relatif aux coordonnées géographiques de l'adresse)
    ID_POINT

    T_ADRESSE
    ID_POINT
    ADRESSE


    Pourquoi la requête suivante renvoie "supplied argument is not a valid MySQL result resource" ?
    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
    SELECT 
    	ad.ADRESSE 	AS adresse_depart,
    	aa.ADRESSE 	AS adresse_arrivee,
    	pd.ID_POINT 	AS point_depart,
    	pa.ID_POINT 	AS point_arrivee 
    FROM 
         T_TRAJET AS tr 
         INNER JOIN 
              T_POINTS  AS pd,	/* point de départ */
              T_ADRESSE AS ad 	/* adresse de départ */
              ON 
                   ad.ID_ADRESSE = pd.ID_ADRESSE 
                   AND 
                   pd.ID_POINT = tr.ID_POINT_DEPART 
         INNER JOIN 
              T_POINTS  AS pa,	/* point d'arrivée */
              T_ADRESSE AS aa 	/* adresse d'arrivée */
              ON 
                   aa.ID_ADRESSE = pa.ID_ADRESSE 
                   AND 
                   pa.ID_POINT = tr.ID_POINT_ARRIVEE
    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    Vous mixez deux syntaxes de jointures différentes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
    	ad.ADRESSE 	AS adresse_depart,
    	aa.ADRESSE 	AS adresse_arrivee,
    	pd.ID_POINT 	AS point_depart,
    	pa.ID_POINT 	AS point_arrivee 
    FROM 
         T_TRAJET tr
         INNER JOIN T_POINTS pd ON pd.ID_POINT = tr.ID_POINT_DEPART 	/* point de départ */
         INNER JOIN T_ADRESSE ad ON ad.ID_ADRESSE = pd.ID_ADRESSE	/* adresse de départ */
         INNER JOIN T_POINTS pa ON pa.ID_POINT = tr.ID_POINT_ARRIVEE	/* point d'arrivée */
         INNER JOIN T_ADRESSE aa ON aa.ID_ADRESSE = pa.ID_ADRESSE	/* adresse d'arrivée */

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Ha d'accord, merci
    Peut-on utiliser une clause WHERE juste après en utilisant les alias définis dans les JOIN (tr, pd, ad...) ou est-ce interdit ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Oui bien sûr, vous pouvez.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup Snipah, je viens de faire le test et ça fonctionne très bien.

    Bonne soirée

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

Discussions similaires

  1. Je ne comprends rien à Linux, please aidez-moi
    Par Kosh5 dans le forum Matériel
    Réponses: 2
    Dernier message: 03/11/2008, 17h28
  2. Réponses: 2
    Dernier message: 31/07/2007, 14h12
  3. pb erreur de pointeur aidez moi please
    Par campgourou dans le forum Java ME
    Réponses: 20
    Dernier message: 16/03/2006, 16h36

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