Bonjour,
Je vais essayer de vous expliquer mon problème clairement.
Disons que j'ai une table avec la structure suivante :
Code :
- 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 :
- 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