sql union 和 union all
UNION和UNION ALL是 SQL 中用于合并两个或多个查询结果集的操作符。它们的基本作用相同但在去重和性能上有关键区别。一、核心区别特性UNIONUNION ALL去重✅ 会去除重复行❌ 保留所有行包括重复性能较慢需要排序去重更快直接合并使用场景需要唯一结果集不关心重复 / 已知不会重复记住一句话UNION ALL是直接拼接UNION是拼接后再去重。二、示例说明假设有两张表表 Atextid | name ----|------ 1 | 张三 2 | 李四表 Btextid | name ----|------ 2 | 李四 3 | 王五UNION ALL保留重复sqlSELECT id, name FROM A UNION ALL SELECT id, name FROM B;结果text1 | 张三 2 | 李四 2 | 李四 ← 重复保留 3 | 王五UNION去重sqlSELECT id, name FROM A UNION SELECT id, name FROM B;结果text1 | 张三 2 | 李四 3 | 王五三、使用限制和注意事项规则说明列数必须相同所有查询的SELECT列数必须一致列类型必须兼容对应列的数据类型必须能隐式转换列名以第一个查询为准最终结果集的列名由第一个SELECT决定ORDER BY只能放在最后不能对单个子查询排序只能对整个结果集排序LIMIT只能放在最后同上四、常见写法1. 合并查询结果sqlSELECT id, name FROM table_a UNION ALL SELECT id, name FROM table_b ORDER BY id DESC; -- 对整个结果集排序2. 合并后分页sqlSELECT id, name FROM ( SELECT id, name FROM table_a UNION ALL SELECT id, name FROM table_b ) t LIMIT 10 OFFSET 0;3. 组合UNION和WHEREsqlSELECT id, name FROM table_a WHERE status 1 UNION ALL SELECT id, name FROM table_b WHERE status 1;五、性能对比操作执行计划UNION ALL直接 Append追加结果集最快UNIONAppend Sort Unique排序去重多消耗 CPU 和内存建议如果确认数据不会重复或者业务上允许重复尽量使用UNION ALL。六、在 MyBatis-Plus / JPA 中使用MyBatis-PlusXMLxmlselect idunionExample resultTypecom.seazon.cloud.entity.Driver SELECT id, name FROM driver_info UNION ALL SELECT id, name FROM driver_history /selectJPA原生 SQLjavaQuery(value SELECT id, name FROM driver_info UNION ALL SELECT id, name FROM driver_history, nativeQuery true) ListObject[] unionQuery();七、UNION与JOIN的区别对比UNIONJOIN作用上下合并行左右关联列结果行数增加列数增加关联不需要关联条件需要ON条件图示textUNION: JOIN: 表A 行 表A 列 表B 列 表A 行 → 表A 行 表B 行 ← 横向扩展 表B 行 ↑ 表A 行 表B 行 表B 行 纵向扩展八、总结需求推荐使用结果集不允许重复UNION结果集允许重复 / 已知无重复UNION ALL优先需要排序ORDER BY放在最后需要分页先UNION再套一层LIMIT

相关新闻

MPS、MRP与APS:企业生产管理的三大核心系统

MPS、MRP与APS:企业生产管理的三大核心系统

1. 引言在现代制造业中,高效的生产计划和资源管理是企业保持竞争力的关键。MPS(主生产计划)、MRP(物料需求计划)和APS(高级计划与排程)作为企业资源计划(ERP)系统的核心组…

2026/9/23 0:17:20 阅读更多 →
APS与ERP中的MRP执行决策:关键考量因素

APS与ERP中的MRP执行决策:关键考量因素

1. MRP的核心作用与流程物料需求计划(MRP)是制造业资源规划的核心模块,其核心流程是:需求输入:接收主生产计划(MPS)或独立需求。净需求计算:将总需求与现有库存、在途库存、安全库存…

2026/9/22 7:20:34 阅读更多 →
BQ25886电源管理芯片:NVDC架构与DPM技术深度解析与实战

BQ25886电源管理芯片:NVDC架构与DPM技术深度解析与实战

1. 项目概述:为什么我们需要更聪明的电源管理芯片?做硬件开发,尤其是便携式设备,电源管理设计绝对是绕不开的“硬骨头”。我见过太多项目,功能做得天花乱坠,最后却栽在续航短、充电慢、发热大或者系统不稳定…

2026/9/21 23:46:49 阅读更多 →

最新新闻

家用电梯品牌怎么选?从驱动系统到安装维保的全维度解析

家用电梯品牌怎么选?从驱动系统到安装维保的全维度解析

我做了这么多年家用电梯相关的工作,最常被问到的一句话就是“家用电梯哪个品牌好”。说实话,这个问题每次听到我都得先愣一下,因为答案远没有一句“某某品牌不错”那么简单。家用电梯不是普通家电,它更像是给房子做的半定制机电系…

2026/9/24 22:22:22 阅读更多 →
巡检超自动化平台的核心能力矩阵

巡检超自动化平台的核心能力矩阵

一个真正的巡检超自动化平台,不应该只是“把人工巡检搬到电脑上”,而是从采集、分析、决策到处置的全链路智能升级。 以下六大核心能力,构成了巡检超自动化平台的完整能力矩阵。一、全栈纳管能力——万物可检,不留死角“支持SSH/S…

2026/9/24 22:22:22 阅读更多 →
Spring Boot与Vue.js健康管理信息系统设计实现与部署实践

Spring Boot与Vue.js健康管理信息系统设计实现与部署实践

我做了三年Java后端,最近帮一个学弟把他的毕业设计从零到一完整搭了一遍,题目是“基于Spring Boot与Vue.js的健康管理信息系统设计与实现”——说白了就是一个偏“养生”主题的全栈Web系统。这个题目在计算机毕业设计里属于典型的前后端分离项目&#xf…

2026/9/24 22:22:22 阅读更多 →
文献检索实战指南:布尔运算、数据库选型与检索式构建

文献检索实战指南:布尔运算、数据库选型与检索式构建

把题目整段粘进搜索框,回车,然后对着几万条结果发呆——这是我见过最多人查文献的方式,也是效率最低的方式。查文献看着是"搜一下"的事,实际上是设计一套查询方案的过程:主题怎么拆,关键词怎么扩…

2026/9/24 22:22:22 阅读更多 →
GPT-6 Sol 与 Claude Opus 5.5 同日发布:价格与额度重置

GPT-6 Sol 与 Claude Opus 5.5 同日发布:价格与额度重置

9 月 22 日,AI 圈像约好了似的:GPT-6 Sol 和 Claude Opus 5.5 同一天发布 这次让我最想立刻开测的,是价格和额度 GPT-6 Sol 的 API 标准价降到每百万输入 token $2、输出 token $10,对比 GPT-5.6 Sol 的 $4/$20&…

2026/9/24 22:22:22 阅读更多 →
汽车电子PCBA包工包料代工厂怎么选?2026年选型避坑指南

汽车电子PCBA包工包料代工厂怎么选?2026年选型避坑指南

汽车电子PCBA包工包料代工这个行当,水比大多数人想象的要深。我在这条供应链上摸爬滚打了十来年,见过太多项目因为选错代工厂,从"小批量试产"一路拖成"无限期搁置",也见过不少采购负责人被"低价包工包料…

2026/9/24 22:21:21 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →