Java教程

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

本文主要是介绍SQL19 查找所有员工的last_name和first_name以及对应的dept_name,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

描述

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

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

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

请你查找所有员工的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

这篇关于SQL19 查找所有员工的last_name和first_name以及对应的dept_name的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!