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(即:父找子)

posted @ 2018-04-23 21:41  N神3  阅读(338)  评论(0编辑  收藏  举报