題目描述
有一個員工表employees簡況如下:

有一個部門領導表dept_manager簡況如下:

建表語句如下:
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_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`));
請你找出所有非部門領導的員工emp_no,以上例子輸出:

答案詳解
方法一
先使用LEFT JOIN連接兩張表,再從此表中選出dept_no值為NULL對應的emp_no記錄(直接使用left Excluding JOIN)
select employees.emp_no from employees left JOIN dept_manager on employees.emp_no=dept_manager.emp_no where dept_no is null
方法二
使用not in 選出在employees但不在dept_manager中的emp_no記錄
select emp_no from employees where emp_no not in( select emp_no from dept_manager )
方法三
select emp_no from employees where not exists( select emp_no from dept_manager where emp_no=employees.emp_no )