我有两张桌子
node
-------------
id
name
edge
--------------
source_node_id
target_node_id
我也有一个通过查询连接
SELECT level,lpad(' ',4*(level)) || tn.name
FROM Node sn, Node tn, Edge e
where e.source_node_id = sn.id
and e.target_node_id = tn.id
start with e.source_node_id in (0)
connect by prior e.target_node_id = e.source_node_id
union
select 0, name
from Node n
where id in (0)
这正确地给出了如下输出:
0 node1
1 node2
2 node3
2 node4
到目前为止,一切都很好。现在我需要显示每个叶节点的完整层次结构 - 如果需要,重复上层节点......像这样:
0 node1
1 node2
2 node3
0 node1
1 node2
2 node4
我在想也许是 sys_connect_by_path - 但甚至不确定。关于这种输出的最佳生成有什么想法吗?