我在Oracle DB中有两个表:项目和关系。Oracle,选择关系
项目:
ID
---
1
2
3
4
5
6
7
关系:
ID parent child
--------------------
1 1 2
2 1 3
3 1 4
4 2 5
5 2 6
6 3 7
在关系表中,我存储的“项目”的分级结构(不要问为什么它存储在不同的表) 。
问题:
当我执行此查询:
SELECT PARENT_ID, CHILD_ID, CONNECT_BY_ISLEAF, MAX(LEVEL) OVER() + 1 - LEVEL as rev_level
FROM relationship
CONNECT BY PRIOR PARENT_ID = CHILD_ID
START WITH CHILD_ID = 7;
我没有看到根父,因为他并不在此表中存在作为一个孩子。
问题是如何将根父(ID = 1)添加到查询结果或将它连接到“items”表并保留结果列(level和isleaf)。
谢谢,但我没有这个行值(10,空,1) – user3164429
我将连接条件更改为(i.id = r.CHILD_ID或i.id = r.PARENT_ID),但现在我需要将连接条件分组或添加DISTINCT – user3164429