题解 | #获取所有非manager员工当前的薪水情况#

获取所有非manager员工当前的薪水情况

https://www.nowcoder.com/practice/8fe212a6c71b42de9c15c56ce354bebe

-- 1. 首先找出所有经理的员工号作为子查询条件
-- 2. 通过employees表中的员工号not in 第一个范围内的员工号,筛选出所有普通员工数据
-- 3. 将第二步的normal_e表和员工薪资表salaries连表查询得到一个包含薪资的员工信息表es
-- 4. 最后将es表和部门表连查得到最终结果
select
    de.dept_no,
    es.emp_no,
    es.salary
from
    (
        select
            normal_e.*,
            s.salary
        from
            (
                select
                    *
                from
                    employees
                where
                    emp_no not in (
                        select
                            e.emp_no
                        from
                            employees e,
                            dept_manager dm
                        where
                            e.emp_no = dm.emp_no
                    )
            ) normal_e
            left join salaries s on normal_e.emp_no = s.emp_no
    ) es,
    dept_emp de
where
    es.emp_no = de.emp_no;

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 00:50
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务