Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。
给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。
?什么叫做“对应员工的经理的 Id”
?经理是哪位
解释一下题目:
ID:1,2对应的Salary表示作为员工的工资: ManagerID对应下面ID为3,4。3,4里的Salary则是作为经理的工资 此表中只有Joe作为员工时70000>他作为经理时的60000。
思路:
同一张表的信息左关联,需要把一张表二次使用做关联再比较
(1)将表自己进行关联,实现员工表和经理表
select * from Employee a left join Employee b on a.Id=b.ManagerId;
(2)筛选出员工工资大于经理工资的员工姓名,并重新命名为Employee
select b.Name as Employee
from Employee a left join Employee b on a.Id=b.ManagerId
where b.salary>a.salary ;
网友评论