UNION 联合查询

目录

一、概述

UNION

[UNION ALL](#UNION ALL)

二、注意事项

性能考虑

排序

子查询限制

三、实际应用场景

数据整合

分段查询

参考文献以及数据来源


一、概述

Union联合操作,用于合并两个或者多个select语句的结果集。

它是一种将多个查询结果组合在一起的方式,但与多表连接不同,它并不基于表之间的关系进行数据的匹配和组合,而是简单将查询结果堆叠在一起。

UNION

默认去重:union默认去掉重复行

列数必须相同:参与union的所有语句必须返回相同数量的列,并且相应的列的数据类型要兼容。

列名来着第一个查询:最终结果集的列名有第一个select语句定义。

sql 复制代码
SELECT * FROM emp where name like '%三%'
union
SELECT * FROM emp where managerid BETWEEN 6 and 10 ORDER BY managerid DESC;

UNION ALL

不希望去掉重复项,可以使用这个,它比union更快,因为它不需要执行额外的去重操作。

sql 复制代码
SELECT * FROM emp where name like '%三%'
union all
SELECT * FROM emp where managerid BETWEEN 6 and 10 ORDER BY managerid DESC;

二、注意事项

性能考虑

如果知道结果集中不会出现重复行,或者不在乎出现重复行,那么使用UNIONALL会更高效,因为它不需要去重处理。

排序

如果想对整个结果集进行排序,可以在最后一个select语句 使用order by 子句。

子查询限制

每个select语句可以包含自己的WHERE、GROUPBY或HAVING子句,但是这些子句只能应用于各自的查询,而不能影响整个查询结果集。

三、实际应用场景

数据整合

当需要从不同来源获取数据并将其作为一个整体来看待时,UNION就非常有用。

例如,合并不同部门的员工信息。

分段查询

由于数据量过大,你可能需要将查询分成几个部分来执行,然后使用UNION将结果合并起来。

参考文献以及数据来源

使用数据来源MySQL学习(三)------多表连接查询_多表关联查询-CSDN博客

相关推荐
浅念-5 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
updayday8545 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
Nturmoils6 小时前
只恢复一张表,别把整个库都还回去
数据库
龙腾AI白云6 小时前
大语言模型:从语言理解到通用智能的跃迁
数据库·人工智能·机器学习·知识图谱
SelectDB7 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB7 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
这个DBA有点耶7 小时前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
其实防守也摸鱼7 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
TDengine (老段)8 小时前
TDengine 常见问题 TOP7
大数据·数据库·时序数据库·常见问题·tdengine·涛思数据
+VX:Fegn08958 小时前
计算机毕业设计|基于java+ vue共享单车信息系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计