思考

  1. 需要所有员工的last_name和first_name, 这两个信息都来自于employees,所以要把employees作为主表
  2. 先连接employees和dept_emp,将employees作为主表,把dept_no信息添加进来
  3. 再连接第2步中的表 和 departments,依然是将包含employees表内容的表作为主表,把dept_name信息添加进来

答案

select last_name, first_name, dept_name
from dept_emp de right join employees e on de.emp_no = e.emp_no
                 left join departments d on de.dept_no = d.dept_no;

优化

一个右外连接和一个左外连接显得有点乱,可以改成两个左外连接

select last_name, first_name, dept_name
from employees e 
left join dept_emp de on de.emp_no = e.emp_no
left join departments d on de.dept_no = d.dept_no;

注意,两个join连着用,意味着先把employees和dept_emp连接,然后将连接后的表再与departments表连接,而不是employees表分别与dept_emp、departments表连接