问题:通过SQL查询层次数据查询的分支信息子集的通过SQL查询分层数据
不同方式。
案例研究:
雇员表:
desc employees
Name Null Type
-------------- -------- ------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
物业:
总统是谁没有经理即空雇员。
对于例如不管理manager_id中的employee_id都不管理的开发者,有叶子节点。
有1RST直线经理谁管理,开发,二线经理谁管理1RST线等.....
我可以全部从下面查询经理:
SELECT manager_id,
employee_id
FROM EMPLOYEES o
WHERE EXISTS
(SELECT * FROM EMPLOYEES i WHERE o.employee_id = i.manager_id)
AND manager_id IS NOT NULL
ORDER BY o.manager_id,
o.EMPLOYEE_ID;
兼总裁从下面:
SELECT manager_id,
employee_id
FROM EMPLOYEES o
WHERE EXISTS
(SELECT * FROM EMPLOYEES i WHERE o.employee_id = i.manager_id)
AND manager_id IS NULL
ORDER BY o.manager_id,
o.EMPLOYEE_ID;
我应该怎样通过exists
关键字获得二号线经理?
我该如何得到第二线管理人员而不使用exists
?
获取分层数据的不同方式有哪些?
而且还关于查询的性能。
看看'connect by' –
非常感谢,我将使用它。任何其他方式,我们可以实现相同的。 – Curious
https://stackoverflow.com/questions/tagged/recursive-query+oracle –