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博客

相关推荐
薛定谔的算法4 小时前
phoneGPT:构建专业领域的检索增强型智能问答系统
前端·数据库·后端
Databend5 小时前
Databend 亮相 RustChinaConf 2025,分享基于 Rust 构建商业化数仓平台的探索
数据库
得物技术6 小时前
破解gh-ost变更导致MySQL表膨胀之谜|得物技术
数据库·后端·mysql
Raymond运维10 小时前
MariaDB源码编译安装(二)
运维·数据库·mariadb
沢田纲吉10 小时前
🗄️ MySQL 表操作全面指南
数据库·后端·mysql
RestCloud1 天前
SQL Server到Hive:批处理ETL性能提升30%的实战经验
数据库·api
RestCloud1 天前
为什么说零代码 ETL 是未来趋势?
数据库·api
ClouGence1 天前
CloudCanal + Paimon + SelectDB 从 0 到 1 构建实时湖仓
数据库
DemonAvenger1 天前
NoSQL与MySQL混合架构设计:从入门到实战的最佳实践
数据库·mysql·性能优化
AAA修煤气灶刘哥2 天前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql