您的位置:首页 > 数据库

数据库SQL实战

2017-08-03 16:09 337 查看
题目描述

获取所有非manager的员工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`));
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
10001
10003
10007
10008
10009
10011 
方法1:使用not in选出在employees但不在dept_manager中的emp_no记录

select emp_no from employees e
where emp_no not in (select emp_no from dept_manager)


方法2:先使用left join连接两张表,再从此表中选出dept_no值为NULL对应的emp_no记录

select e.emp_no from employees e
left join dept_manager d
on e.emp_no = d.emp_no
where d.dept_no is NULL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: