如何使用 SQL 在数据库中的树类结构中查找最后一级子节点

how to find the last level child nodes in tree kind structure in database using SQL

我有一个父子关系存储在 table

如果我用 1 查询,我想检索 1 的所有 LAST LEVEL Children。 我应该回来 5, 6,8.

忽略出现的任何周期性数据。

请看附件

使用分层查询并使用 pseudocolumns CONNECT_BY_ISLEAFCONNECT_BY_ISCYCLE:

将输出限制为仅 non-cyclic 叶行

Oracle 设置:

CREATE TABLE your_table ( parent_column, child_column ) AS
SELECT 1, 2 FROM DUAL UNION ALL
SELECT 2, 3 FROM DUAL UNION ALL
SELECT 3, 4 FROM DUAL UNION ALL
SELECT 4, 5 FROM DUAL UNION ALL
SELECT 3, 6 FROM DUAL UNION ALL
SELECT 3, 7 FROM DUAL UNION ALL
SELECT 7, 8 FROM DUAL;

查询:

SELECT child_column
FROM   your_table
WHERE  CONNECT_BY_ISLEAF  = 1
AND    CONNECT_BY_ISCYCLE = 0
START WITH parent_column = 1
CONNECT BY NOCYCLE PRIOR child_column = parent_column

输出:

CHILD_COLUMN
------------
           5
           6
           8