题解 | #left join 的使用#
获取员工其当前的薪水比其manager当前薪水还高的相关信息
https://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef
with ds as (
select d.emp_no,
d.dept_no,
s.salary
from dept_emp d
left join salaries s
on d.emp_no = s.emp_no
where d.to_date = '9999-01-01'
)
select d.emp_no,
m.emp_no manager_no,
d.salary emp_salary,
m.salary manager_salary
from ds d
left join (
select m.dept_no,
m.emp_no,
s.salary
from dept_manager m
left join salaries s
on m.emp_no = s.emp_no
) m
on d.dept_no = m.dept_no
where d.salary > m.salary
本题可以先构建 dept_emp 与 salaries 的临时表,以及 dept_manger 与 salaries 的临时表,获取所有员工的工资以及经理的工资关系。
然后 left join 两张临时表,筛选员工工资大于经理工资即可。
