有一个员工表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