如何在SQL查询中获取“链接”项

时间:2010-11-07 00:26:41

标签: sql tree oracle10g hyperlink

我在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。

3 个答案:

答案 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 setadjacency model。两者都有利用任何SQL数据库。邻接模型仅适用于有限数量的嵌套深度,而嵌套集可以嵌套无限深度。