- create table t_task (
- task_id number(11) primary key,
- task_name varchar2(20),
- parent_task_id number(11)
- )
- insert into t_task (task_id,task_name,parent_task_id) values(000001,'t1',-1);
- insert into t_task (task_id,task_name,parent_task_id) values(000002,'t11',000001);
- insert into t_task (task_id,task_name,parent_task_id) values(000003,'t2',000001);
- insert into t_task (task_id,task_name,parent_task_id) values(000004,'t111',000002);
- insert into t_task (task_id,task_name,parent_task_id) values(000005,'t1111',000003);
- insert into t_task (task_id,task_name,parent_task_id) values(000006,'t121',000005);
- insert into t_task (task_id,task_name,parent_task_id) values(000007,'t1211',000006);
- select * from t_task;
- --查询所有有关联的数据
- select t.task_id, t.task_name, t.parent_task_id
- from t_task t
- start with task_id = 3
- connect by prior task_id = parent_task_id;
- --查询所有父节点数据包含自身
- select * from t_task start with task_id=3 connect by prior parent_task_id=task_id ;
- --查询所有子节点数据不包含自
- select t.*,level from t_task t start with parent_task_id=3 connect by prior task_id=parent_task_id ;