子查询
- 优先执行子查询,后执行主查询
- 子查询的查询结果要符合行数(单行/多行)
名称 | 表现 | demo | | |
---|
单行子查询 | 子查询结果一行 | SELECT * FROM 表 WHERE 条件 >(子查询结果) | | |
多行子查询 | 子查询结果多行 | | | |
多列查询关键
方法 | 作用 | 示例 | 备注 |
---|
IN | 任一值符合即可 | 字段 IN(10,20) | 字段=10 OR 字段=20 |
ANY/SOME | 符合任意一个值即可 | 字段 ANY(10,20) | 字段=10 OR 字段=20 |
ALL | 所有值都需要符合 | 字段 > ALL(10,20) | 字段>max(10,20) |
- IN 和 =ANY 等价
- not in 和 <> all 即不等于所有,每个都不相等。但是<>any 只要有一个不相等即为true
子查询的位置
- 放置SELECT后面,SELECT 子查询 只能接一行一列
- 放置FROM后面,可以将查询子查询作为一个新表
- exists后面,相关子查询,先执行外查询
SELECT * FROM (子查询) 表名 INNER JOIN B
查询语句顺序
SELECT 查询列表 7
FROM 表 1
连接类型 JOIN 表二 2
ON 连接条件 3
WHERE 筛选条件 4
GROUP BY 分组条件 5
HAVING 分组后筛选条件 6
ORDER BY 排序条件 8
LIMIT 索引,条目 9