- ~
题目描述
使用含有关键字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)