|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 5 ![]() |
Bonjour,
Je bute sur une requête nécessitant surement une jointure mais je ne trouve pas ! Voila, mon sujet comprend 4 tables, entre [...] le nom de mes champs : - destinations [id_destination,...] - regions [id_region, id_destination,...] - circuits [id_circuit, id_region,id_type_voyage...] - type_voyage [id_type_voyage,...] Je souhaite afficher les types de voyage correspondant à des circuits existant dont la destination est envoyé par une variable (via une liste déroulante). Voici le début de ma requête : Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
il suffit de faire des jointures interne, un peu de lecture et vous comprendrez mieux : http://sqlpro.developpez.com/cours/sqlaz/jointures/ |
|
|
10
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 5 ![]() |
Merci pour le lien, je vais m'en imprégner.
Voici la requête avec les jointures internes mais cela ne marche pas encore. Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Ne melangez pas les jointures implicites et explicites...
Code :
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Étudiant Inscription : octobre 2010 Messages : 92 ![]() |
Code :
SELECT att1_tab1,att2_tab1,att3_tab1,att1_tab2,att2_tab2,att1_tab3 FROM tab1,tab2,tab3 WHERE tab1.att1_tab1 = tab2.att2_tab2 AND tab1.att1_tab1 = tab3.att1_tab3 AND tab1.att2_tab1 = "kikoolol" AND tab2.att1_tab2 = "bonjour" AND tab1.att3_tab1 = "c'est bon ?" Si t'as pas tout compris, donne les tables et les champs qui t'intéresses, je te ferai une requête adaptée à ton code. |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 5 ![]() |
Merci à vous
J'ai finalement remis les jointures internes à plus tard, j'ai suivi les conseils de zeclad01 en faisant une requête simple, maintenant c'est peut être pas le plus optimisé. Voici ma requête pour info : Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Mais votre requete dite "simple" manipule des jointures internes (seulement elles ne sont pas explicites, mais implicites).
Dans votre requete, vous utilisez un GROUP BY, pourquoi ? vous n'avez aucune fonction d'aggrégation. Je ne saurai quand meme trop vous conseiller de potasser quelques tutoriels (celui ci par exemple) Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#8 | ||||||
![]() ![]() |
Le besoin exprimé dans le premier message :
Citation:
Code :
Et je suis bien entendu du même avis que Yanika_bzh sur les jointures mal écrites et le GROUP BY inutile ! Voici la requête qui je pense répond à ton besoin : Code :
1) Puisque ta variable est id_destination qui figure dans la table regions, pas besoin de jointure avec la table destinations. 2) Tu devrais nommer tes tables au singulier. 3) Prend la bonne habitude d'indenter et d'aérer ton code, c'est plus facile à lire et donc à débugguer. J'ai lu récemment dans une signature une phrase amusante qui va dans ce sens : Citation:
__________________
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
|
Copyright © 2000-2012 - www.developpez.com