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

相关推荐
没有bug.的程序员34 分钟前
MyBatis 初识:框架定位与核心原理——SQL 自由掌控的艺术
java·数据库·sql·mybatis
Databend1 小时前
Databend 亮相 DTCC 2025:存算分离架构引领湖仓一体化
数据库
回家路上绕了弯1 小时前
ClickHouse 深度解析:从核心特性到实战应用,解锁 OLAP 领域新势能
数据库·后端
张铁铁是个小胖子1 小时前
mysql是怎样运行的(梳理)
数据库·mysql
许泽宇的技术分享3 小时前
当自然语言遇上数据库:Text2Sql.Net的MCP革命如何重新定义开发者与数据的交互方式
数据库·.net·text2sql·mcp
2301_803554523 小时前
redis学习
数据库·redis·学习
Java水解4 小时前
SQL 多表查询:数据整合与分析的强大工具
sql
TT哇4 小时前
@[TOC](MySQL)MySQL经典练习题(详解)
数据库·mysql
Yichen_liuuil4 小时前
Oracle数据库迁移
数据库·oracle·备份·迁移
Pure_Eyes5 小时前
mysql 执行sql流程概述
数据库·sql·mysql