查找所有員工的last_name和first_name以及對應的dept_name,也包括暫時沒有分配部門的員工
CREATE TABLE departments
(
dept_no
char(4) NOT NULL,
dept_name
varchar(40) NOT NULL,
PRIMARY KEY (dept_no
));
CREATE TABLE dept_emp
(
emp_no
int(11) NOT NULL,
dept_no
char(4) NOT NULL,
from_date
date NOT NULL,
to_date
date NOT NULL,
PRIMARY KEY (emp_no
,dept_no
));
CREATE TABLE employees
(
emp_no
int(11) NOT NULL,
birth_date
date NOT NULL,
first_name
varchar(14) NOT NULL,
last_name
varchar(16) NOT NULL,
gender
char(1) NOT NULL,
hire_date
date NOT NULL,
PRIMARY KEY (emp_no
));
先將employees 與dept_emp 做鏈接後形成新的臨時表,然後再與departments 做連接形成最終的表
select a.last_name , a.first_name , c.dept_name
from (employees as a left join dept_emp as b on a.emp_no = b.emp_no)
left join departments as c
on b.dept_no = c.dept_no;