题目链接:https://leetcode-cn.com/problems/employees-earning-more-than-their-managers/
编写一个SQL查询来查找收入比经理高的员工
输入:
Employee 表:
+----+-------+--------+-----------+
| id | name | salary | managerId |
+----+-------+--------+-----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | Null |
| 4 | Max | 90000 | Null |
+----+-------+--------+-----------+
输出:
+----------+
| Employee |
+----------+
| Joe |
+----------+
解释: Joe 是唯一挣得比经理多的雇员。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/employees-earning-more-than-their-managers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
一、思路:
1、当成两个Employee表 内连接 的问题
将其中一个别名设为e,另一个设为em。如图,两个表的连接条件为 e.managerid = em.id
2、连接后的表为
3、筛选超过经理收入的员工
二、代码
select e.name as employee
from employee as e
inner join employee as em on e.managerid = em.id
where e.salary > em.salary;
注意:同一个语句的尽量不要放到不同行,我把on语句放在join下面一行的时候报错了。。。