0
点赞
收藏
分享

微信扫一扫

LeetCode(数据库)- 向公司CEO汇报工作的所有人


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:略。

AC 代码

-- 解决方案(1)
SELECT DISTINCT employee_id FROM (
SELECT employee_id
FROM Employees WHERE manager_id = 1
UNION ALL
SELECT employee_id
FROM Employees WHERE manager_id IN (
SELECT employee_id FROM Employees WHERE manager_id = 1
)
UNION ALL
SELECT employee_id
FROM Employees WHERE manager_id IN (
SELECT employee_id FROM Employees WHERE manager_id IN (
SELECT employee_id FROM Employees WHERE manager_id = 1
)
)
) T WHERE employee_id != 1

-- 解决方案(2)
SELECT e1.employee_id
FROM Employees e1
JOIN Employees e2 ON e1.manager_id = e2.employee_id
JOIN Employees e3 ON e2.manager_id = e3.employee_id
WHERE e1.employee_id != 1 AND e3.manager_id = 1

-- 解决方案(3)
WITH t1 AS(SELECT employee_id FROM Employees WHERE manager_id = 1),

t2 AS(SELECT employee_id FROM Employees WHERE manager_id IN (SELECT * FROM t1)),

t3 AS(SELECT employee_id FROM Employees WHERE manager_id IN (SELECT * FROM t2))

SELECT *
FROM t2
WHERE employee_id <> 1
UNION
SELECT *
FROM t3
WHERE employee_id <> 1


举报

相关推荐

0 条评论