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;
心之所愿,永不相忘