题目有三个表:

  1. 【部门的信息】departments: dept_no, dept_name
  2. 【部门员工所属】dept_emp: emp_no, dept_no,...
  3. 【员工的信息】employees: emp_no, first_name, last_name,...

题目要求:
思路:

  1. 列出employees表里所有员工last_name, first_name,
  2. 根据employees中emp_no对应dept_emp中的dept_no,没有分配的员工找不到对应-->采用LEFT JOIN
  3. 再根据dept_no对应departments表中的dept_name,没有分配的员工找不到对应-->采用LEFT JOIN
SELECT last_name, first_name, dept_name
FROM employees AS e LEFT JOIN (SELECT emp_no, dept_name
                               FROM dept_emp AS de LEFT JOIN departments AS d
                               ON de.dept_no = d.dept_no)k
ON e.emp_no = k.emp_no;