1. 程式人生 > >資料庫SQL實戰 --3.查詢所有已經分配部門的員工的last_name和first_name

資料庫SQL實戰 --3.查詢所有已經分配部門的員工的last_name和first_name

題目描述

查詢所有已經分配部門的員工的last_name和first_name

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`));

解決思路

已經分配部門的員工,其實就是返回兩個表中聯結emp_no欄位相等的行,也就是等值連線

select employees.last_name, first_name, dept_emp.dept_no
from dept_emp inner join employees
on dept_emp.emp_no = employees.emp_no;
  • inner join(等值連線) 只返回兩個表中聯結欄位相等的行
  • left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄
  • right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄