组合查询
使用子查询
1. 在select中嵌套:
嵌套在select中
2. 在from中嵌套
子查询嵌套from,子查询返回的结果就是一个完整的表
3. 在where中嵌套
select 列 from 表 where 列=(子查询)
在WHERE中嵌套的子查询根据不同的运算符有不同的分类:
- 比较运算符(>、<、=、>=、<=、!=)
- in 和not in运算符
- 子查询运算符(ALL、ANY、 EXISTS)
在GROUP BY 中嵌套:
GROUP BY中嵌套和SELECT中嵌套类似,
要求子查询只能返回单行单列值。
在HAVING中嵌套:
HAVING中嵌套子查询和WHERE中嵌套子查询类似,只是能用到聚合函数。
在ORDER BY 中嵌套
ORDER BY中嵌套子查询和SELECT中嵌套子查询类似,
要求子查询只能返回单行单列值。
上面三个位置嵌套子查询实际作用不大,因此很少会用到。
使用UNION运算符:
UNION是一种联合两条或以上查询的运算符,类似多条查询结果相组合的效果
使用UNION ALL运算符:
UNION ALL会保留重复行
标准结构
:select列 from 表 union allselect列2 from 表2;