日期:2014-05-17  浏览次数:20829 次

求一条树形数据的查询
请教一下!我有两张表,table1和table2
table1表中有id,name,parentID三个字段,其中parentID纪录的是父级id,就是一个树形结构,table2表中有table1中的id和userID
我的问题是,如何能用sql找出,某条userID满足条件的数据的table1的数据及其所有上级、上级的上级的节点的id
谢谢!

------解决方案--------------------

with table1 as
(
 select 1 id,'root' name,0 parentID from dual
 union 
 select 2,'col1',1 from dual
 union
 select 3,'col2',2 from dual
 union
 select 4,'col3',3 from dual
 ),
 table2 as
 (
 select 4 id, 1 userid from dual
 )
 select * from table1 
start with id = (select id from table2 where userid = 1)
connect by id =prior parentid
------解决方案--------------------
数据中的层次关系如下图:


实测结果:


manager_id列,显示的就是7号员工所有领导的员工编号。一直到根结点。
------解决方案--------------------
sys_connect_by_path(字段,'分隔符')