|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 7 ![]() |
Bonjour à tous,
Voici plusieurs jours que j'essaie de retourner ce problème dans tous les sens mais mes connaissances en BDD étant limitées, je ne parviens pas à faire ce que je veux... ![]() J'ai 3 tables comme suit : Routes id départ arrivée Vols id dateduvol route_id Tarifs id typedetarif montant route_id - Les différents trajets sont définis dans la table "Routes" Ex : 1/ Paris Marseille 2/ Paris Toulouse ... - La table "Vols" contient les différents vols effectués avec une jointure vers leur route Ex : 1/ 15/11/2010 12:00 1 2/ 15/11/2010 13:00 2 3/ 15/11/2010 14:30 2 ... - La table "Tarifs" contient le prix de chaque route Ex : 1/ Classe affaires 200 2 2/ Classe eco 98 1 3/ Classe eco 50 2 4/ Classe affaires 120 1 ... J'aimerais savoir s'il est possible en 1 seule requête (qui serait si possible "compatible" avec Doctrine) de récupérer la liste des vols pour une date et une destination précises avec leurs différents tarifs par exemple sous la forme : Vol 2 15/11/2010 13:00 Paris Toulouse Classe eco 50 Vol 2 15/11/2010 13:00 Paris Toulouse Classe affaires 200 Vol 3 15/11/2010 14:30 Paris Toulouse Classe eco 50 Vol 3 15/11/2010 14:30 Paris Toulouse Classe affaires 200 Je n'arrive pas à voir quel type de jointure on peut utiliser sachant que je fais un SELECT sur la table "Vols", que je fais un LEFT JOIN sur la table "Routes", ça m'affiche bien les différents vols selon mes critères en WHERE. Mais pour joindre la table "Tarifs", là je sèche... Merci de votre aide ! |
|
|
00
|
|
|
#2 |
![]() ![]() |
Il faut faire des jointures entre les tables dans la requête. Quelle difficulté rencontres-tu ?
Montre nous ton essai de requête.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 7 ![]() |
Excuse moi, j'ai modifié mon premier message après ta réponse, je disais donc :
Je n'arrive pas à voir quel type de jointure on peut utiliser sachant que je fais un SELECT sur la table "Vols", que je fais un LEFT JOIN sur la table "Routes", ça m'affiche bien les différents vols selon mes critères en WHERE. Mais pour joindre la table "Tarifs", là je sèche... Merci de votre aide ! Code :
|
||
|
|
00
|
|
|
#4 | ||
![]() ![]() |
Et bien fais une jointure supplémentaire !
Et ton premier ON est à remplacer par FROM. Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 7 ![]() |
[HS ON]Merci de corriger mes erreurs de syntaxe, en fait j'ai tapé ça de tête car ce n'est pas moi qui écris les requêtes car je passe par Doctrine
J'essaie ton truc et je reviens... |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 7 ![]() |
Bah oui ta requête fonctionne, mon problème doit venir d'ailleurs alors...
|
|
|
00
|
|
|
#7 |
![]() ![]() |
Quel problème ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() |
Pour ma part pour ce genre de requête plutôt que d'utiliser "left join" j'utilise des closes " WHERE "
ex : Where e.ID_AVION = a.ID_AVION Peut-être que ça pourra t'aider à construire ta requête ... Cordialement, |
|
|
00
|
|
|
#9 | |
![]() ![]() |
Citation:
![]() La syntaxe normalisée depuis 1992 pour les jointures est JOIN ... ON ! Il serait temps de s'y mettre ! ![]() De plus, la condition de jointure dans le WHERE est une jointure interne alors que LEFT JOIN est une jointure externe. Zéro pointé !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 7 ![]() |
En fait mon problème venait de la variable php dans laquelle sont stockés les résultats de la requête, je ne l'utilisais pas correctement du coup ça ne me retournait rien.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com