数据库SQL实践19:查找所有员工的last_name和first_name以及对应的dept_name

思想:

题目要求查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工。

首先通过条件employees e left join dept_emp on e.emp_no = dept_emp.emp_no实现employees和dept_emp的左连接,即左表所有记录保留即使右表没有对应的。这样有的emp_no并不存在dept_emp中,但也会给这个添加空的dept_no值。

其次通过条件left join departments d on dept_emp.dept_no = d.dept_no将刚才左连接生成的表和departments表再次左连接,即实现计算空的dept_no也能有空的dept_name。

最后取出对应的last_name,first_name,dept_name。

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

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/83823198