多个完整的查询语句关系:拼接数据union
多个完整的查询语句关系:子查询语句给主查询语句当条件
多个完整的查询语句关系:拼接数据(联合查询union)
定义
- 两个无关的表, 某几个字段的内容对象合并在一起
- 需要人工判断:两个语句的查询列表字段个数一致,且有意义
连接字符 | 特点 |
---|---|
union | 自带去重,如果完全一致则去重复项 |
union all | 不去重,完全一致也会显示 |
//代码
select 查询列表
form 表名
...
union
select 查询列表
form 表名
...
多个完整的查询语句关系:子查询语句给主查询语句当条件(子查询)
定义
- 可以放在增删改查任何地方
- 当一个查询语句中嵌套了一个完整的select语句(主查询/子查询)
- 一般写在条件的右侧,例如xx>(子查询),子查询结果优先于主查询(小括号优先)
- 行子查询,没有意义,跟and相关两个条件没区别
from:相当于一个表
from (子查询结果集:多行多列,相当于一个表)
where having:一列多行 或者 一列一行
//子查询结果集:一列一行
where 字段 > (select 一列一行结果集)
//子查询结果集:一列多行
(1)字符型
where 字段 in (select 一列多行结果集)
where 字段 not in (select 一列多行结果集)
(2)数字型
where 字段 in (select 一列多行结果集)
where 字段 not in (select 一列多行结果集)
//1.any/some相同:满足任意一个条件;例如大于最小的值即可,可以用min()代替
where 字段 > any (select 一列多行结果集)
where 字段 > some (select 一列多行结果集)
//1.满足所有条件;例如大于最大的值即可,可以用max()代替
where 字段 > all (select 一列多行结果集)
select:固定值+exists函数
//子查询结果集:一列一行 等于固定值
select (select 一列一行结果集)
//表子查询有对象内容,返回值为1,没有返回值为0
select exists( 表子查询 )