|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : avril 2005 Messages : 235 ![]() |
Bonjour,
J'aimerais faire une jointure entre deux tables et n'avoir en retour qu'une seule ligne, même s'il y a plusieurs lignes correspondantes dans la seconde table, et avec une condition pour trouver laquelle retourner. Pour bien me faire comprendre (car je suis pas sûr d'être très clair J'ai une table "personnes" et une table "voitures" (qui possède un champ "personne_id", clé étrangère pointant sur personnes.id). Je voudrais retrouver toutes les personnes présentes dans la base et pour chacune avoir la voiture lui appartenant, avec la date d'achat la plus récente. Pas sûr que ce soit faisable avec le JOIN seul. Mais sait-on jamais ! Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
bonjour
non ce n'est pas tres clair la requete de test, et un exemple de donnees en retour serait le bienvenu ![]() et quel est le SGBD ? |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : avril 2005 Messages : 235 ![]() |
Ok.
Alors, pas de requêtes car justement je n'ai aucune idée de comment faire. Le SGBD est MySQL, en version 5. Mes tables : Personnes (id, nom, naissance) Voitures (id, nom, date_achat, personne_id) J'ai par exemple les données suivantes : Personne : 1, Pontus, 01/01/1980 Voiture : 1, C1, 02/05/2011, 1 Voiture : 2, C2, 03/01/2010, 1 Et la même chose pour chaque personne de la table Personnes ... Est-ce plus clair ? Comme je ne suis pas sûr que ce que je souhaite soit possible, au pire, j'aimerais n'avoir qu'une ligne par personne, même si cette personne a acheté plusieurs voitures : quel type de jointure utiliser alors ? |
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Voilà une requete, elle est un peu compliquée parce que j'ai considéré qu'une personne pouvait acheter deux voitures le même jour, dans ce cas j'ai pris une voiture arbitrairement. Code :
A+ Soazig |
||
|
|
00
|
|
|
#5 | |||
|
Membre émérite
![]() Inscription : mai 2004 Messages : 739 ![]() |
Avec du fenetrage sous Oracle :
Code :
Citation:
__________________
Je ne réponds pas aux questions techniques par MP, le forum est là pour cela. La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|||
|
|
00
|
|
|
#6 |
![]() ![]() |
En fait ici, il n'y a pas de fenêtrage, c'est la fonction FIRST sous sa forme agrégée classique. Elle existe aussi avec son extension PARTITION BY, mais pas nécessaire dans ce cas-là.
Je me suis fait avoir aussi il y a quelques temps ! Par contre, l'auteur étant sous MySQL, je doute que ça l'aide vraiment.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#7 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 739 ![]() |
C'est vrai bonne remarque. J'ai tendance à mettre un peu trop de choses sous l'appelation fenêtrage
__________________
Je ne réponds pas aux questions techniques par MP, le forum est là pour cela. La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|
|
00
|
|
|
#8 | ||||
![]() ![]() |
Quelle est, pour chaque personne, la dernière voiture qu'il a achetée ?
Code :
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
|
Copyright © 2000-2012 - www.developpez.com