文章目录
一、子查询结果返回一个值(单列单行)
- 一、子查询结果返回一个值(单列单行)
- 二、子查询结果返回多行(单列多行)
- 三、子查询结果返回多列多行
- 四、关联子查询
- (一)子查询执行顺序
- (二)exists 关键字
- 五、子查询总结
- 六、关联子查询示例
选择比较运算符:> < >= ( select salary from emp_xxx where ename = '张无忌' ) ; 二、子查询结果返回多行(单列多行)
选择比较运算符:>ALL >ANY ANY( select salary from emp_xxx where ename = '张无忌' ) ;
select ename,salary,job from emp_xxx
where deptno in(select deptno from emp_xxx
where ename = '刘苍松')
and ename '刘苍松' ;
三、子查询结果返回多列多行
查询每个部门薪水最高的员工:
select ename, salary, job, deptno from emp_xxx
where (deptno, salary) in ( select deptno, max(salary)
from emp_xxx
where deptno is not null group by deptno ) ;
注意: 子查询的条件是单列还是多列没关系 , 关键是要分清返回的是单行还是多行。
- 如果是单行 , 用单行比较运算符 ,=,>,< 这些
- 如果是多行 , 用 in, >all, >any,
关注打赏