获取所有非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`));
01 我来答
这道题是要求两个表的差集,嗯嗯我知道inner join呢是求解两个表的交集。求A表与B表的差集,也可以用A left join B,然后找两个表关联后,里面B表里字段是NULL的记录。
select t1.emp_no
from employees t1
left join dept_manager t2 on t1.emp_no = t2.emp_no
where t2.emp_no is null
02 你来评
- left join + is NULL
select t1.emp_no
from employees t1
left join dept_manager t2 on t1.emp_no = t2.emp_no
where t2.emp_no is null
- Not IN
select emp_no
from employees
where emp_no not in(select emp_no from dept_manager)
03 今日知识点
求两个表之间的差集:
left join + is NULL
not in
让思绪再飞一会儿…
一天1道题,轻松学习。
Day1:每天刷1道SQL,不信面试你还挂在SQL上
Day2:每天刷1道SQL,不信面试你还挂在SQL上
Day3:每天刷1道SQL,不信面试你还挂在SQL上
Day4:每天刷1道SQL,不信面试你还挂在SQL上
Day5:每天刷1道SQL,不信面试你还挂在SQL上
Day6:每天刷1道SQL,不信面试你还挂在SQL上
Day7:每天刷1道SQL,不信面试你还挂在SQL上
Day8:每天刷1道SQL,不信面试你还挂在SQL上
Day9:每天刷1道SQL,不信面试你还挂在SQL上
扫描二维码 关注我们,💁提供职业规划、简历指导、面试辅导服务哦
数据分析之家
QQ交流群:254674155
数据分析之家联合JEE RAY品牌为粉丝派发福利
添加粉丝福利派发官,领取粉丝福利哦