2022年5月4日 五四青年节 十三级全能系战魂师
题目描述:
表:Employee
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| name | varchar |
| salary | int |
| managerId | int |
+-------------+---------+
Id是该表的主键。
该表的每一行都表示雇员的ID、姓名、工资和经理的ID。
编写一个SQL查询来查找收入比经理高的员工。
以 任意顺序 返回结果表。
查询结果格式如下所示。
示例 1:
输入:
Employee 表:
+----+-------+--------+-----------+
| id | name | salary | managerId |
+----+-------+--------+-----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | Null |
| 4 | Max | 90000 | Null |
+----+-------+--------+-----------+
输出:
+----------+
| Employee |
+----------+
| Joe |
+----------+
解释: Joe 是唯一挣得比经理多的雇员。
看到题目,我突然有了轻松的感觉,因为我已经有三道题没有自己想出来过了,都是编程题,终于有一道可以让我缓缓的题了,sql题我还是懂一点的。
那么这道题就很明显得用多表联查了,但是吧,就一个表,所以,答案就只能从同一张表里查,条件就是表一的经理id=表二的id,并且表一的工资,大于表二的工资。答案显而易见,就不废话咯。
select e1.name as Employee from Employee e1,employee e2 where e1.managerId = e2.id and e1.salary > e2.salary;
铛铛铛铛。今日任务完毕。撒花!!!!