这个东西要分开思考,后面两个如果有关联可以直接做到。但第一个,需要分两部来做。 思路:两两先关联,关联好了再进行合并,可以用left join 或者 right join 来做。 下面是关于树的语法 以第一个为例 SELECT LEVEL,用户,角色 FROM 员工信息表 START WITH 员工ID = ‘1’ --此方法更具你要从树的第几层开始 CONNECT BY PRIOR 用户ID = 管理角色ID ORDER BY LEVEL; 这就是Oracle生成树的语法,其它的只要以此类推就可以了。 生成的数据应该是这样,我在本地做了一个,不知道是不是你要的 LEVEL EMPLOYEE_ID MANAGER_ID FIRST_NAME LAST_NAME ---------- ----------- ---------- ---------- ---------- 1 1 0 James Smith 2 10 1 Kevin Black 2 2 1 Ron Johnson 2 4 1 Susan Jones 3 13 10 Doreen Penn 3 7 4 John Grey 3 11 10 Keith Long 3 5 2 Rob Green 3 3 2 Fred Hobbs 3 12 10 Frank Howard 3 6 4 Jane Brown 4 8 7 Jean Blue 4 9 6 Henry Heyson
思路:两两先关联,关联好了再进行合并,可以用left join 或者 right join 来做。
下面是关于树的语法 以第一个为例 SELECT LEVEL,用户,角色
FROM 员工信息表
START WITH 员工ID = ‘1’ --此方法更具你要从树的第几层开始
CONNECT BY PRIOR 用户ID = 管理角色ID
ORDER BY LEVEL; 这就是Oracle生成树的语法,其它的只要以此类推就可以了。
生成的数据应该是这样,我在本地做了一个,不知道是不是你要的
LEVEL EMPLOYEE_ID MANAGER_ID FIRST_NAME LAST_NAME
---------- ----------- ---------- ---------- ----------
1 1 0 James Smith
2 10 1 Kevin Black
2 2 1 Ron Johnson
2 4 1 Susan Jones
3 13 10 Doreen Penn
3 7 4 John Grey
3 11 10 Keith Long
3 5 2 Rob Green
3 3 2 Fred Hobbs
3 12 10 Frank Howard
3 6 4 Jane Brown
4 8 7 Jean Blue
4 9 6 Henry Heyson