题目描述
Employee
表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。
Id | Name | Salary | ManagerId |
---|---|---|---|
1 | Joe | 70000 | 3 |
2 | Henry | 80000 | 4 |
3 | Sam | 60000 | NULL |
4 | Max | 90000 | NULL |
给定 Employee
表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。
Employee |
---|
Joe |
相关知识
此题不需要前置知识
解题过程
-
分析题意
- 使用内连接连接两个
Employee
表,筛选条件ManagerId=Id且工资高于老板
- 使用内连接连接两个
-
编写sql
SELECT e.`Name` AS Employee FROM Employee e, Employee r WHERE e.ManagerID=r.Id AND e.Salary > r.Salary
-
提交,运行通过
-
查看题解,发现有人使用的是左连接,这样会多一些记录,因为有些人没有领导时会被用NULL填充,对于当前题使用左连接我认为没有意义
学习总结
此题没有学习到内容