Oracle connect by 层级结构查询
公司组织架构表:organization
一、查询子级
select * from organization
start with id='1'
connect by prior id = parent_id
解析:
1、首先找出id=1的记录
2、prior在那一边,则取上条记录那个字段。例如上面prior与id一起,则取上面查找出来记录id与表parent_id匹配,符合id = parent_id则找出来。
二、查询父级
select * from organization
start with id = 7;
connect by id = prior parent_id
解析:
1、首先找出id=7的记录
2、prior在那一边,则取上条记录那个字段。例如上面prior与parent_id一起,则取上面查找出来记录parent_id与表id匹配,符合parent_id = id 则找出来。
三、通俗理解
prior id = pid:以当前start with的记录id去匹配其它记录的pid(即:子找父)
id = prior pid:以当前start with的记录pid去匹配其它记录的id(即:父找子)
感谢您的阅读,您的支持是我写博客动力。