我在SQL数据库表中创建了一个“自下而上”的树,其中每个元素都有一列用于引用其父元素。现在我试图找出是否有一个简单的查询来获得孩子的所有父母。
例如:
[ Parent #1 ]
|
[Parent #2] [Parent #3]
| |
[Child # 1] [Child #2] [Child #3] [Child #4]
我将孩子#1作为'ID'。每个条目都引用它的父级,最顶层的父级对于父级id为null。所以不是在我的代码中递归并获取每个父代,我希望有一个查询我可以通过提供子1 id来获得Parent 1 id,parent 2 id和child 1 id。
答案 0 :(得分:2)
您希望使用START WITH和CONNECT BY子句来使用分层查询。请参阅this link。
答案 1 :(得分:1)
这只是一个分层检索 我猜了一个问题,所以欢迎进行改进。
SELECT node_id
FROM tree
WHERE child_id="child_1"
START WITH id="child_1"
CONNECT BY PRIOR parent_id=child_id;
答案 2 :(得分:0)
您还可以使用nested set或adjacency model。两者都有利用任何SQL数据库。邻接模型仅适用于有限数量的嵌套深度,而嵌套集可以嵌套无限深度。