|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 8 ![]() |
Bonjour,
je cherche une requête SQL afin d'afficher tous les champs de la table 1 et seulement les derniers champs de la table 2 que correspondent à l'ID de la table 1. Table 1 : ID label 1 AAA 2 BBB 3 CCC 4 DDD Table 2 : ID label date 4 DDD 10/01/2011 2 BBB 14/01/2011 4 DDD 15/01/2011 Résultat : 1 AAA 2 BBB 14/01/2011 3 CCC 4 DDD 15/01/2011 Je ne sais pas s'il faut une jointure, une table croisée, un distinct, un inner join ? Merci de votre aide. |
|
|
00
|
|
|
#2 |
![]() ![]() |
Il faut faire un groupement par ID + Label sur la table 2 pour chercher la dernière date puis faire une jointure externe sur cette sous requête à partir de la table 1 pour avoir tous les membres de la table 1.
Tu essaies et tu nous montres ce que tu as fait au lieu qu'on te donne la solution toute faite ?
__________________
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 : janvier 2011 Messages : 8 ![]() |
Merci pour ces pistes,
j'ai donc essayé quelques requêtes après avoir parcouru les 2 liens groupement et jointure. Ma table 2 est un peu différente de celle définie dans mon premier post, elle ne contient pas de label, désolé pour l'erreur. Table 1 : ID label 1 AAA 2 BBB 3 CCC 4 DDD Table 2 : ID date 4 10/01/2011 2 14/01/2011 4 15/01/2011 Résultat : 1 AAA 2 BBB 14/01/2011 3 CCC 4 DDD 15/01/2011 Code :
|
||
|
|
00
|
|
|
#4 | |||||
![]() ![]() |
Où est la recherche de la dernière date dans ta requête ?
Citation:
Allons-y par étapes... 1) Quelle est la dernière date pour chaque ID ? Code :
2) Faisons maintenant la jointure externe : 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 : janvier 2011 Messages : 8 ![]() |
Bien la réponse, merci pour cette explication.
j'étais très loin de la solution, j'avais bien essayé du côté de la requête imbriqué mais sans succès. Il faut se poser les bonnes questions dans le bon ordre et je n'ai pas ce réflexe. La première requête renvoi bien le résultat recherché ( sélection des dernières dates ) qu'il faut joindre à la seconde. Il me manque aussi pas mal de contenu, je ne savais pas que l'on pouvait utiliser tmp puis le reprendre dans une sous requête. Cette requête est un exemple complet et me resservira pour d'autres cas. Merci encore et bonne journée.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com