數據庫SQL實戰(牛客網):查找所有員工的last_name和first_name以及對應的dept_name

查找所有員工的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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章