Cours CPTIC 157
Bases de données sur Internet
16 et 17 avril 2002

Jointure d'une table à elle même

Il peut être utile de rassembler des informations venant d'un enregistrement d'une table avec des informations venant d'une autre ligne de la même table. Considérons la table Personne suivante:

Personne

id
prenom
idpere idmere

La requête pour connaître le nom des parents de chaque membre de cette table aura l'aspect suivant:

SELECT personne.prenom, pere.prenom, mere.prenom
FROM personne, personne pere, personne mere
WHERE (personne.idpere = pere.id) AND (personne.idmere = mere.id)

Le critère d'égalité est le critère de jointure le plus naturel. Mais on peut aussi utiliser d'autres types de comparaisons comme critères de jointure. Exemple: dans la table Eleve, quels sont les personnes plus âgées que Marie Bambelle ?

SELECT Eleve.nom, Eleve.prenom, Eleve.age
FROM Eleve, Eleve tmp
WHERE (eleve.age > tmp.age) AND (tmp.nom='Bambelle') AND (tmp.prenom='Marie')