Cette question fait suite à ce poste:Comment récupérer le chemin d'un nœud dans un arbre - efficace (lié au poste 'analyser une table plate dans un arbre?)
What is the most efficient/elegant way to parse a flat table into a tree?
J'ai aimé la solution ClosureMap, mais j'ai un problème supplémentaire à résoudre.
Comment pouvez-vous facilement récupérer le chemin d'accès à un nœud particulier dans un arbre? Par exemple, si vous regardez l'arbre fourni:
ID Nom du noeud
1 'nœud 1'
2 'Node 1.1'
3 'Node 2'
4 « Node 1.1. 1'
5 'Noeud 2,1'
6 'Noeud 1,2'
Le chemin vers 1.1.1 serait:
ID = 1, 2, 4
Sans effectuer d'appels SQL récursifs, existe-t-il un moyen élégant de récupérer un chemin?
Merci ... Je devrais avoir analyser votre solution plus, qui fait sens. – AndreLiem
Pour obtenir l'ordre, je suppose que vous pouvez utiliser le champ "PATH_LENGTH" supplémentaire pour récupérer par enfant parent: SELECT ancestor_id DE ClosureTable OÙ descendant_id = 4 ORDER BY PATH_LENGTH DESC; – AndreLiem