[RESOLU] INNER JOIN MULTIPLE SUR LA MÊME TABLE?

Petit nouveau ! | 6 Messages

13 févr. 2013, 14:27

Bonjour,

Je me sèche sur mon projet…

J’ai dans une base MySQL deux tables que je dois interroger simultanément dans une requête SELECT.
La première table contient une liste de villes

table : villes
id_ville INT(11) auto-increment
Intitule TINY TEXT
La seconde table contient les éléments d’un trajet donné :
table : trajets
id_trajet INT(11) auto-increment
id_depart INT(11)
id_destination INT(11)
Je voudrais qu’en une requête, je puisse afficher en même temps l’intitulé de départ et celui de la destination.
J’essai la requête suivante :
SELECT villes.intitule AS depart
FROM trajets
INNER JOIN villes ON villes.id_ville = trajets.id_depart
WHERE trajets.id_trajet = 1
Bien sûr, elle fonctionne mais comment puis-je ajouter la ville d’arrivée ?

...en revanche, ceci ne fonctionne pas !
SELECT villes.intitule AS depart,villes.intitule AS destination
FROM trajets
INNER JOIN villes ON villes.id_ville = trajets.id_depart
INNER JOIN villes ON villes.id_ville = trajets.id_destination
WHERE trajets.id_trajet = 1
Quelqu'un saurait me guider? Est-ce que cela est réalisable?

Merci par avance pour votre aide, :wink:

Petit nouveau ! | 6 Messages

13 févr. 2013, 15:18

J'ai eu la réponse par ailleurs...
SELECT v1.intitule AS depart,v2.intitule AS destination
  FROM trajets t
  JOIN villes v1 ON v1.id_ville = t.id_depart
  JOIN villes v2 ON v2.id_ville = t.id_destination
 WHERE t.id_trajet = 1
Si cela peut servir à d'autres....
Bonne journée,

ptrau
Invité n'ayant pas de compte PHPfrance

07 avr. 2014, 11:07

merci, l'exemple est simple et efficace