UNION和UNION ALL的区别

一、区别

去重功能

  • UNION会去除结果集中的重复行。
  • UNION ALL不会去除重复行,它只是简单地将多个结果集合并在一起。

性能

  • UNION ALL通常比UNION性能更好,因为UNION需要进行去重操作,这会增加额外的计算开销。

二、具体例子

假设有两个表table1table2,它们的结构相同,都有idname字段。

1、使用UNION

sql 复制代码
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2;

如果table1中有数据 (1, 'Alice') 和 (2, 'Bob'),table2中有数据 (2, 'Bob') 和 (3, 'Charlie'),那么使用UNION的结果将是 (1, 'Alice')、(2, 'Bob') 和 (3, 'Charlie'),去除了重复的 (2, 'Bob')。

2、使用UNION ALL

sql 复制代码
SELECT id, name FROM table1
UNION ALL
SELECT id, name FROM table2;

使用UNION ALL的结果将是 (1, 'Alice')、(2, 'Bob')、(2, 'Bob') 和 (3, 'Charlie'),没有去除重复行。

相关推荐
林鸿群2 分钟前
批量提取游戏信息并插入数据库的自动化实践
数据库·游戏·自动化
Bin努力加餐饭3 分钟前
MongoDB
数据库·mongodb
白藏y3 分钟前
【MySQL】CentOS 7 环境下 MySQL 5.7 完整安装与配置
数据库·mysql
小箌4 分钟前
JavaWeb_02
java·数据库·maven·mybatis
数据知道4 分钟前
详解MongoDB混合部署策略:复制集与分片集群的组合应用
数据库·mongodb
在路上~~~~9 分钟前
EBS AR接口表数据跑【自动开票主程序】报错
运维·oracle·ar
溜达的大象14 分钟前
后端常用技术全方位分析:从核心标配到淘汰弃用,一文理清技术选型逻辑
网络·数据库
麦聪聊数据18 分钟前
QuickAPI 如何重塑可视化大屏与 BI 的数据交付链路?
数据库·sql·低代码·微服务·重构
草莓熊Lotso24 分钟前
手搓简易 Linux 进程池:从 0 到 1 实现基于管道的任务分发系统
linux·运维·服务器·数据库·c++·人工智能
霖霖总总26 分钟前
[Redis小技巧11]Redis Key 过期策略与内存淘汰机制:深度解析与实战指南
数据库·redis