先看我的表数据
dept表
emp表
列子查询,也就是多列作为子查询去寻找一些问题
常用操作符:IN, NOT IN, ANY, SOME, ALL
1.查询 "销售部" 和 "市场部" 的所有员工的信息(拆分成以下两个问题)
a. 查询"销售部" 和 "市场部" 的部门ID
b. 根据部门ID, 查询员工的信息
然后合并
select * from emp where dept_id in (select id from dept where name = '销售部' or name = '市场部');
2. 查询比财务部所有人工资都高的员工信息(拆分成以下两个问题)
a 查询财务部的工资
b 查询比 财务部高工资 的员工信息
然后合并
select * from emp where salary > all ( select salary from emp where dept_id = (select id from dept where name = '财务部') );
3. 查询比研发部其中任意一人工资高的员工信息(拆分成以下两个问题)
a. 查询研发部所有人的工资
b. 比研发部其中任意一人工资高的员工信息
然后合并
select * from emp where salary > some (select salary from emp where dept_id = (select id from dept where name = '研发部'));
最后附上一张黑马程序员的听课截图