Oracle递归查询

关系表:sys_function
id :主键id
pid:父关系id
Oracle函数:start with…connect by…prior
1.表数据
select * from family;

Oracle递归查询

文章插图
 
2.查询自己和自己所有的后代
select s.*
from family s
start with s.id = 'me'
connect by prior s.id = s.pid;
 
Oracle递归查询

文章插图
 
3.查询自己和自己的祖先
select s.*
from family s
start with s.id = 'me'
connect by s.id = prior s.pid;
 
Oracle递归查询

文章插图
 
4.查询自己所有的后代(不包括自己)
select s.*
from family s
start with s.pid = 'me'
connect by prior s.id = s.pid;
 
Oracle递归查询

文章插图
 
5.查询自己的第一代孩子和祖先(包括自己)
select s.*
from family s
start with s.pid = 'me'
connect by s.id = prior s.pid;
 
Oracle递归查询

文章插图
 

【Oracle递归查询】


    推荐阅读