步骤分解
1.需要查询已分配员工的信息,无部门的员工信息不需要,因此连接时需要将dept_emp表作为主表
2.不需要使用where语句限定筛选条件,因为第1步中的连接,已经将不需要的信息剔除
3.如果使用了employees作为主表,那么则需要增加一个步骤如下,剔除未分配部门的员工信息
where d.dept_no is not null
完整答案
select e.last_name, e.first_name, d.dept_no from employees e right join dept_emp d on d.emp_no = e.emp_no;
答案优化
last_name, first_name只有employees表中有,dept_no只有dept_emp表中有,所以第一行可以简化为:
select last_name, first_name, dept_no