【358天】我愛刷題系列117(2018.01.29)

叨叨兩句

  1. ~

SQL習題012

1

題目描述
查找全部員工的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
相關文章
相關標籤/搜索