题75:
根据下表用 SQL 查询出所有直接或间接向公司 CEO 汇报工作的职工的 employee_id ,由于公司规模较小,经理之间的间接关系不超过 3 个经理;可以以任何顺序返回无重复项的结果。
其中:employee_id 是上表的主键。这个表中每一行中,employee_id 表示职工的 ID,employee_name 表示职工的名字,manager_id 表示该职工汇报工作的直线经理。这个公司 CEO 是 employee_id = 1 的人。
解题思路:
根据题目的规定经理之间的间接关系不超过3个经理,第一次查询的manager_id等于第二次查询的employee_id,那就做两次连接即可。
select a.employee_id
from Employees a
join Employees b on a.manager_id = b.employee_id
join Employees c on b.manager_id = c.employee_id
where a.employee_id != 1
and c.manager_id = 1;