Bonjour,

Je vous expose mon problème. Voici un schéma simple d'une base de données. Elle comporte 3 tables.

adresse
id_adresse INTEGER PK NN UNSIGNED AI
rue VARCHAR(30)
numero VARCHAR(5)
code INTEGER UNSIGNED
localite VARCHAR(20)

personne
id_personne INTEGER PK NN UNSIGNED AI
nom VARCHAR(20)
prenom VARCHAR(20)

personne_has_adresse
fk_id_personne INTEGER PK NN UNSIGNED
fk_id_adresse INTEGER PK NN UNSIGNED
date_creation DATETIME
datet_fin DATETIME

En sachant qu'une personne peut avoir eu plusieurs adresses et qu'à une adresse on peut avoir plusieurs habitants.

J'ai du mal à créer une requête qui me permettrait de faire un DISTINCT sur les adresses et d'obtenir en même temps le nom d'une personne (par exemple le premier trouvé) demeurant à cette adresse.

Actuellement, voici ma requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT t1.nom, t1.prenom, t2.rue, t2.numero, t2.code, t2.localite
FROM `personne` AS t1 
LEFT JOIN adresse AS t2 ON t2.id_adresse = t3.fk_id_adresse
LEFT JOIN personne_has_adresse AS t3 ON t3.fk_id_personne = t1.id_personne
Déjà merci de vous attarder sur mon problème.