SQL19 查找所有员工的last_name和first_name以及对应的dept_name

描述

有一个员工表employees简况如下:

SQL19 查找所有员工的last_name和first_name以及对应的dept_name

有一个部门表departments表简况如下:

SQL19 查找所有员工的last_name和first_name以及对应的dept_name

有一个,部门员工关系表dept_emp简况如下:

SQL19 查找所有员工的last_name和first_name以及对应的dept_name

请你查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工,以上例子输出如下:

SQL19 查找所有员工的last_name和first_name以及对应的dept_name

思路:一开始没理清楚,后面参照讨论区弄明白了,可以使用两层JOIN配合子查询嵌套。先内连接departments表和dept_emp表形成新表C,再左连接employees表和C表

SELECT
    e.last_name,
    e.first_name,
    c.dept_name 
FROM
    employees AS e
    LEFT JOIN (
    SELECT
        dm.emp_no,
        dm.dept_no,
        de.dept_name 
    FROM
        dept_emp AS dm
    INNER JOIN departments AS de ON dm.dept_no = de.dept_no 
    ) AS c ON e.emp_no = c.emp_no

上一篇:wordpress插件-WP Rocket 3.10.1_去广告已授权


下一篇:细说业务逻辑(后篇)