曾格的github

mysql三表连接

描述

有一个员工表employees简况如下:
 
 
有一个部门表departments表简况如下:
 
 
有一个,部门员工关系表dept_emp简况如下:
 
 
请你查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工,以上例子输出如下:
 
(一)两个左连接:
select em.last_name,em.first_name,dep.dept_name
from employees as em
left join dept_emp as de on em.emp_no=de.emp_no
left join departments as dep on de.dept_no=dep.dept_no

(二)先内连接得到临时表,再左连接(快一点)

1 select a.last_name,a.first_name,b.dept_name
2 from employees as a
3 left join (select dp.dept_name,de.emp_no from departments as dp
4     inner join dept_emp as de
5     on dp.dept_no=de.dept_no
6 ) as b
7 on a.emp_no=b.emp_no;

 

posted @ 2021-09-13 23:16  曾格  阅读(536)  评论(0编辑  收藏  举报
Live2D