Bonjour,

Je vais essayer de vous expliquer mon problème clairement.
Disons que j'ai une table avec la structure suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
CREATE TABLE FAMILLE (
  id SERIAL,
  nom varchar(100),
  prenom varchar(100),
  parent int,
  PRIMARY KEY (id)
);
J'ai donc un principe parent-enfant.

Si je veux remonter le parent d'un enfant ma requête serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT *
FROM FAMILLE AS F1
INNER JOIN FAMILLE AS F2 ON F1.parent = F2.id
En revanche si je veux remonter tous les parents, grand parent, arrière grand parent etc... jusqu'à ce que l'id parent soit NULL, comment puis-je faire ?

Je sais que si je veux remonter sur x générations de plus je rajoute x INNER JOIN FAMILLE et ainsi de suite. Sauf que là je ne sais pas combien de génération il peut y avoir.
Je veux donc que ca s'arrete quand le champ parent égale NULL.

Si vous pouvez m'aider ?

Merci d'avance