【368天】我愛刷題系列127(2018.02.08)

叨叨兩句

  1. ~

SQL習題022

1

題目描述
使用含有關鍵字exists查找未分配具體部門的員工的全部信息。
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));
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));spa

本題用 EXISTS 關鍵字的方法以下:意爲在 employees 中挑選出令(SELECT emp_no FROM dept_emp WHERE emp_no = employees.emp_no)不成立的記錄,即當 employees.emp_no=10011時。反之,把NOT去掉,則輸出 employees.emp_no=10001~10010時的記錄。

SELECT * FROM employees WHERE NOT EXISTS 
(SELECT emp_no FROM dept_emp WHERE emp_no = employees.emp_no)

因爲OJ系統沒有對 EXISTS 關鍵字做檢測,所以還能用 NOT IN 關鍵字替換,即在employees中選出dept_emp中沒有的emp_no。

SELECT * FROM employees WHERE emp_no NOT IN (SELECT emp_no FROM dept_emp)
相關文章
相關標籤/搜索