无尽SQL之 超过经理收入的员工

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

题解:

内连接

# Write your MySQL query statement below
select e1.name as Employee
from 
Employee e1  join Employee e2
on
e1.ManagerId=e2.Id and e1.Salary > e2.Salary;

左连接

select e1.name as Employee
from 
Employee e1 left join Employee e2
on
e1.ManagerId=e2.Id 
where e1.Salary > e2.Salary;

不连接

select e1.name as Employee
from 
Employee  as e1, Employee as e2
where e1.Salary > e2.Salary and e1.managerid=e2.id;
发布了152 篇原创文章 · 获赞 277 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_33709508/article/details/103984652