[SQL刷题]LeetCode:181. 超过经理收入的员工

546 阅读1分钟

写在前面

题目

Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。

给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。

思路

自连接的典型应用。 找到相关的字段连接后比较即可。

原表:

image.png

员工表

image.png

经理表

image.png

连接后的表

image.png

select e1.name as employee
from employee e1,employee e2
where e1.managerid=e2.id
and e1.salary>e2.salary

这道题跟oracle自带的scott用户的emp表中一个问题类似:显示员工姓名和领导姓名。