10. 子查询
查询 10
2023-09-14 08:57:57 时间
# 作为where条件,若子查询返回单行或单列值,则被当成一个标量值使用
SELECT *
FROM student
WHERE
grade (
# 此子查询返回单行数据
SELECT math
FROM grades
WHERE id =1
);
# 若子查询返回多个值,则需要使用in、any、all等关键字
SELECT *
FROM student
WHERE
id IN(
# in可单独使用,效果同比较运算符的in,子查询返回的多个值将被当成一个值列表。
SELECT id
FROM grades
WHERE id =5 OR id =6
);
# =any
SELECT *
FROM student
WHERE
# =any等价于in
id =ANY(SELECT id FROM grades);
# =all
SELECT *
FROM student
WHERE
id =ALL(SELECT id FROM grades);
# 子查询返回多行多列,则where应该有对应的数据列,并用圆括号将其组合起来。
SELECT s.*
FROM student s
WHERE # 组合内的字段均须对应相等
(id, grade)=ANY(SELECT id, math FROM grades g);
子查询(2) 如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联,因此每执行一次外部查询,子查询都要重新计算一次,这样的子查询就称之为 关联子查询 。相关子查询按照一行接一行的顺序执行,主查询的每一行都执行一次子查询。
zxiaofan 【zxiaofan.com】Life is all about choices!生命不息,学习不止。
相关文章
- hive中function函数查询
- Laravel : 模糊查询 where orWhere
- EF Linq中的左连接Left Join查询
- Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
- Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
- MySQL 之 单表查询
- PromQL 初识 过滤时间序列/瞬时查询 范围查询
- 在SAP Commerce里用SQL查询产品主数据
- 如何绕过CDN查询网站真实IP
- 应该记住的10个SQL 查询
- 【Android 逆向】应用安装目录 ( Android 应用的默认安装目录 | 查找 Android 应用的安装目录 | 查询当前正在运行的应用包名 | 根据包名查询应用安装路径 )
- Docker镜像的修改记录查询
- 第10讲:DQL数据查询语句之ORDER BY排序查询示例
- 域名备案查询
- Ceph 状态查询
- 大数据Hadoop之——基于内存型SQL查询引擎Presto(Presto-Trino环境部署)
- 从零实现ORM框架GeoORM-记录新增和查询-03
- SQL Sever — 查询前10%的数据、查询并参与计算显示出数据、查询前10行数据、多重升序降序查询、去掉重复值、替换列名显示
- 【MySQL优化查询】MySQL单表过亿条数据,如何优化查询速度?