题解 | #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_empsalaries 的临时表,以及 dept_mangersalaries 的临时表,获取所有员工的工资以及经理的工资关系。

然后 left join 两张临时表,筛选员工工资大于经理工资即可。

全部评论

相关推荐

01-05 09:14
同济大学 Java
心碎一号线:我要是9✌🏻我就选保研,保研了大四再找实习,实习之后,如果觉得自己不适合互联网工作模式,还能有其他选择,如果实习后决定了走互联网,也能提升学历提高竞争力
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务