jointure avec le plus grand...

jointure avec le plus grand... - SQL/NoSQL - Programmation

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

Reply

Marsh Posté le 12-01-2007 à 16:47:48   

Reply

Marsh Posté le 12-01-2007 à 17:36:14    

Avec quel SGBD ?
 
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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed