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

相关推荐
网管NO.11 小时前
SQL 排序分页精讲!ORDER BY+LIMIT 全套用法,报表分页
数据库·sql
MRSM_012 小时前
InfluxDB vs TimescaleDB,谁更适合你的场景
数据库
CAE虚拟与现实2 小时前
Redis如何保证存和读的过程中数据的一致性?
数据库·redis·缓存
我爱cope5 小时前
【Agent智能体4 | 智能体AI的应用】
数据库·人工智能·职场和发展
知识分享小能手6 小时前
Flask入门学习教程,从入门到精通,数据库操作 — 知识点详解与案例代码(4)
数据库·学习·flask
我是一颗柠檬7 小时前
【MySQL全面教学】MySQL基础SQL语句Day3(2026年)
数据库·后端·sql·mysql·oracle
XS0301067 小时前
MyBatis动态SQL
数据库·sql·mybatis
MandalaO_O7 小时前
MyBatis 与 MySQL 执行流程
数据库·mysql·mybatis
l1t8 小时前
DeepSeek总结的将 Rust Delta Kernel 集成到 ClickHouse
数据库·clickhouse·rust