Bonjour,
J'ai une table dans laquelle je stocke des trajets d'un point A vers B. Exemple :
Trajet 1 : Paris Toulouse
Trajet 2 : Toulouse Montpellier
Trajet 3 : Paris Marseille
Trajet 4 : Montpellier Toulouse
Trajet 5 : Toulouse Paris
Je cherche à créer une requête qui soit capable de me retourner par exemple le chemin à emprunter pour aller de Montpellier à Paris (Trajet 4 + Trajet 5) ou de Montpellier à Marseille (Trajet 4 + Trajet 5 + Trajet 3).
J'arrive à construire ma requête en bidouillant un peu Mysql en faisant une auto-jointure :
Exemple pour un trajet à 3 branches :
La colonne stockant les départs s'appelle "from" et celle stockant les arrivées s'appelle "to" :
(Je sais qu'il ne faut pas faire un SELECT * mais c'est pour la démo) :
SELECT * FROM flight f1 JOIN flight f2 ON f1.to = f2.from JOIN flight f3 ON f2.to = f3.from WHERE f1.from = 'Montpellier' AND f3.to = 'Marseille'
Je sais que Doctrine est capable de créer des arborescences mais je n'arrive pas à trouver comment faire pour utiliser cette fonction pour créer mon trajet en n'utilisant qu'une seule table.
Pensez-vous que ça soit possible ?
Partager