Bonjour,
Je vais essayer de vous expliquer mon problème clairement.
Disons que j'ai une table avec la structure suivante :
J'ai donc un principe parent-enfant.
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) );
Si je veux remonter le parent d'un enfant ma requête serait :
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 ?
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
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
Partager