【发布时间】:2016-01-04 04:35:50
【问题描述】:
我正在尝试检索每个项目的每个后代的列表。 我不确定我是否有道理,我会尝试解释。
示例数据:
ID | PID
--------
1 | 0
2 | 1
3 | 1
4 | 1
5 | 2
6 | 2
7 | 5
8 | 3
等等……
期望的结果是:
ID | Decendant
--------------
1 | 1
1 | 2
1 | 3
1 | 4
...
2 | 2
2 | 5
2 | 6
2 | 7
3 | 3
3 | 8
等等……
目前这是通过使用光标在数据中移动并将每个后代插入表中然后从中进行选择来实现的。
我想知道是否有更好的方法来执行这些操作,必须有一种方法来纠正可以返回所需结果的查询。
如果有人有想法,或者在此之前已经想通了,将不胜感激。排序并不重要,1 - 1、2 -2 参考也不重要。拥有它会很酷,但并不重要。
【问题讨论】:
-
你确定吗? 1-4有效吗?使用此处显示的示例数据。抱歉,我对 PID 列感到困惑!
-
PID 是 Parent ID,也许我应该指定,所以 Parent ID 4 是 1。所以 4 是 1 的后代,所以 1 - 4 是有效的。
-
@OracleUser,如果您认为我的问题令人困惑,我可以尝试改写它,但我不确定如何
-
我想我明白了!此外,似乎每个 id 都是其自身的后代。
-
我希望它在结果中以这种方式显示,但这不是必需的,如果不是,我可以轻松解决它。
标签: oracle hierarchical