我在 Oracle11g 中有一个结构类似于 (id, parent_id) 的表。
id parent_id
---------------
1 (null)
2 (null)
3 1
4 3
5 3
6 2
7 2
我想查询它以获取分层链接到每个 ID 的所有行,因此结果应该是:
root_id id parent_id
------------------------
1 3 1
1 4 3
1 5 3
2 6 2
2 7 2
3 4 3
3 5 3
我一直在与connect by
and苦苦挣扎start with
很长一段时间,而我所能得到的只是我想要的查询结果的一小部分,例如:
select connect_by_root(id) root_id, id, parent_id from my-table
start with id=1
connect by prior id = parent_id
我不想使用任何for
循环来获得完整的结果。
任何的想法 ?
最好的问候,杰罗姆·勒弗雷尔
PS:在第一次回答后编辑,注意到我忘记了一些我想要的结果......