如果一个select语句能够返回单个值或者一列值,且该select语句嵌套在另一个SQL语句中,那么该select语句称为子查询,通常将子查询写在小括号内。
例如 , 通过子查询找到张三的年龄,再去与外层查询的age字段比较,得到结果;
select * from 表 where age
(select age from 表 where name='张三');
对子查询返回的数据结果分类,可以分为 表子查询(单行或多行数据),列子查询(某列数据),和标量子查询(具体某个值)。
通过子查询返回相同数据类型的数据集合进行比较,通常与比较操作符(>,<,=,!=,<>)搭配使用。
IN 判断是否在集合中
例:SELECT * FROM A WHERE cc IN (SELECT cc FROM B)
ANY 需要与比较操作符一起使用,与子查询返回的任何值做比较
例:SELECT * FROM A WHERE cc > any(SELECT cc FROM B)
#理解为,大于集合中任意一个值即为True
ALL 需要与比较操作符一起使用,与子查询返回的所有值做比较
例:SELECT * FROM A WHERE cc < all(SELECT cc FROM B)
#理解为,小集合中所有的值即为True
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有