暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何从仅具有ID和级别的数据中查找子级或父级

ASKTOM 2020-11-30
352

问题描述

嗨,汤姆,

我有这个数据

select 1 LineNumber, 1 mylevel, 10 id from dual
union all
select 2 , 2 , 11 from dual
union all
select 3 , 3 , 13 from dual
union all
select 4 , 3 , 14 from dual
union all
select 5 , 4 , 15 from dual
union all
select 6 , 2 , 20 from dual
union all
select 7 , 2 , 30 from dual
union all
select 8 , 3 , 31 from dual
union all
select 9 , 4 , 33 from dual
union all
select 10 , 3 , 32 from dual
union all
select 11 , 3 , 34 from dual
union all
select 12 , 4 , 35 from dual
union all
select 13 , 5 , 36 from dual


我在找一种方法
-递归id = 30的子id。
-id = 30的父id

专家解答

我不清楚你是如何定义父子关系的。要查找id 30的子级,必须有一列存储指向此父行的值。

没有具有30作为父值的行。所以我看不到哪些列形成父/子对。如果您所拥有的只是当前行的值及其级别,那么您将陷入困境!

一旦定义了父/子列,快速简便的方法是:

select * from ...
start with id = 30
connect by prior id = parent_column_id


我在此视频中解释了如何更详细地编写分层查询:


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论