Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。
id | name |
---|---|
1 | Joe |
2 | Henry |
3 | Sam |
4 | Max |
Salary | Managerld |
---|---|
70000 | 3 |
80000 | 4 |
60000 | NULL |
90000 | NULL |
给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。
Employee |
---|
Joe |
解题思路:
自表连接,先找出某个员工对应的经理,再比较他们之间的工资
sql:
select e1.name as Employee
from employee as e1, employee as e2
where e1.managerid=e2.id and e1.salary>e2.salary