day2 超過經理收入的員工

uccs發表於2022-01-20

本題使用的是 MySQL8.0,沒有在 MySQL5.6 版本中測驗過,不保證正確。

題目

題目來源:超過經理收入的員工

經理也屬於員工。每個員工都有一個 Id,此外還有一列對應員工的經理的 Id。查詢收入超過他們經理的員工的姓名

create table employee (
    id int,
    name varchar(255),
    salary int,
    managerId int
);

insert into employee values 
(1, 'Joe', 70000, 3),
(2, 'Henry', 80000, 4),
(3, 'Sam', 60000, null),
(4, 'Max', 90000, null);

SQL

select employee.name from employee left join employee e
on employee.managerId = e.id
where employee.salary > e.salary;

解析

managerId 是經理 id ,同時經理也是員工,也就是說沒有 managerId 是普通員工,有 managerId 的是經理。

所以將 employee 自連線,連線條件是 employee.managerId = e.id ,就可以把普通員工和經理連線起來了。

然後在篩選出 employee.salary > e.salary 的員工就行了。

更多解題參考:https://github.com/astak16/bl...

相關文章