- ~
題目描述
查找全部員工的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
));spa
本題思路爲運用兩次LEFT JOIN鏈接嵌套 一、第一次LEFT JOIN鏈接employees表與dept_emp表,獲得全部員工的last_name和first_name以及對應的dept_no,也包括暫時沒有分配部門的員工 二、第二次LEFT JOIN鏈接上表與departments表,即鏈接dept_no與dept_name,獲得全部員工的last_name和first_name以及對應的dept_name,也包括暫時沒有分配部門的員工 SELECT em.last_name, em.first_name, dp.dept_name FROM (employees AS em LEFT JOIN dept_emp AS de ON em.emp_no = de.emp_no) LEFT JOIN departments AS dp ON de.dept_no = dp.dept_no