联合查询 union

联合查询

基本概念

联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合到一起,使用谓词为UNION或UNION ALL。

联合查询:将多个查询的结果合并到一起(纵向合并):字段数不变,多个查询的记录数合并。

应用场景

1、 将同一张表中不同的结果(需要对应多条查询语句来实现),合并到一起展示数据

男生身高升序排序,女生身高降序排序

2、 最常见:在数据量大的情况下,会对表进行分表操作,需要对每张表进行部分数据统计,使用联合查询来讲数据存放到一起显示。

QQ1表获取在线数据

QQ2表获取在线数据 ---》将所有在线的数据显示出来

基本语法

基本语法:

Select 语句

Union [union 选项]

Select 语句;

 

Union选项:与select选项基本一样

Distinct:去重,去掉完全重复的数据(默认的)

联合查询 union_第1张图片

All:保存所有的结果

联合查询 union_第2张图片

注意细节:union理论上只要保证字段数一样,不需要每次拿到的数据对应的字段类型一致(但是不一致查出来没意义)。

永远只保留第一个select语句对应的字段名字。

 

Order by的使用

1、 在联合查询中,如果要使用order by,那么对应的select语句必须使用括号括起来

错误演示

联合查询 union_第3张图片

正确演示

联合查询 union_第4张图片

注意:orderby在联合查询中若要生效,必须配合使用limit:而limit后面必须跟对应的限制数量(通常可以使用一个较大的值:大于对应表的记录数)

联合查询 union_第5张图片

你可能感兴趣的:(mysql轻松学)