jointure avec le plus grand... - SQL/NoSQL - Programmation
MarshPosté le 12-01-2007 à 16:47:48
Bonjour, Je voudrais faire une jointure entre une table A et une table B (B ayant une clef étrangere vers A). Quand je fais ma jointure normale, il me sort autant de ligne qu'il y a de clef étrangère de A dans B. Je voudrais qu'il ne me sorte QUE celle dont la clef primaire de B est la plus grande.
Exemple : A : Personne id nom 1 Abel 2 Bernard
B : adresse id personne_id ville 1 1 Paris 2 1 Marseille 3 2 Strasbourg 4 2 Brest
(Abel a déménagé de Paris pour Marseille et Bernard à déménagé de Strasbourg à Brest)
Je voudrais obtenir : id_personne id_adresse ville 1 2 Marseille 2 4 Brest
Sous Oracle, on pourrait avoir la requête suivante :
SELECT p1.id_personne.id, a1.id_ville From Personne p1, Adresse a1 Where a1.id_personne = p1.id_personne And a1.id_ville In (Select max(a2.id_ville) From Adresse a2 Where a2.id_personne = p1.id_personne)
Message édité par olivthill le 12-01-2007 à 17:37:40
Marsh Posté le 12-01-2007 à 16:47:48
Bonjour,
Je voudrais faire une jointure entre une table A et une table B (B ayant une clef étrangere vers A).
Quand je fais ma jointure normale, il me sort autant de ligne qu'il y a de clef étrangère de A dans B.
Je voudrais qu'il ne me sorte QUE celle dont la clef primaire de B est la plus grande.
Exemple :
A : Personne
id nom
1 Abel
2 Bernard
B : adresse
id personne_id ville
1 1 Paris
2 1 Marseille
3 2 Strasbourg
4 2 Brest
(Abel a déménagé de Paris pour Marseille et Bernard à déménagé de Strasbourg à Brest)
Je voudrais obtenir :
id_personne id_adresse ville
1 2 Marseille
2 4 Brest
Merci pour votre aide,
Axel