我对 sql 很陌生,在这种情况下我需要你的帮助,这对你们大多数人来说可能是基本的东西:
我有一个表“Employee”,其中包含属性 ID 和 BOSS_ID。顶级boss的BOSS_ID为NULL。
现在我想要一个表格,其中列出了员工 ID 以及特定顶级老板的 ID。
我已经做的是这个递归查询,它返回具有下一个更高级别老板的 id 的所有员工:
WITH TopBosses(ID,NAME, BOSS_ID)
AS
(
SELECT ID,NAME, BOSS_ID
FROM EMPLOYEE
WHERE BOSS_ID IS NULL
UNION ALL
SELECT EMPLOYEE.ID,EMPLOYEE.NAME, EMPLOYEE.BOSS_ID
FROM EMPLOYEE
INNER JOIN TopBosses
ON EMPLOYEE.BOSS_ID = TopBosses.ID
)
SELECT ID,NAME, BOSS_ID
FROM TopBosses
但是由于下一级老板 id 已经是“员工”表的一部分,这对我来说毫无用处:) 我只是没有完成最后一步,我总是能得到特定的顶级老板。
谢谢您的回复!