【day2 超过经理收入的员工】本题使用的是 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...
推荐阅读
- day5 性别变更
- mysql8数据迁移至mysql5.7
- Mysql|MySQL数据库触发器讲解与案例
- mysql my.cnf配置模板参考
- mysql-group by 分页
- Mysql8版本遇到MySQL 服务无法启动的解决方法
- 「MySQL」数据库备份和还原
- 字符串可以这样加索引,你知吗(《死磕MySQL系列 七》)
- 什么(还在用delete删除数据《死磕MySQL系列 九》)