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'),没有去除重复行。

相关推荐
七牛开发者25 分钟前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
何以解忧,唯有..2 小时前
数据库索引失效的常见情况与优化策略
数据库·sql·oracle
这个DBA有点耶3 小时前
分布式数据库到底该不该上?从判断标准到架构选型的实战思考
数据库·架构·dba
01_ice4 小时前
MySQL库和表的操作
数据库·mysql
oradh4 小时前
Oracle UNDO表空间管理维护总结
数据库·oracle·undo表空间·undo表空间管理·undo表空间管理维护
布莱克6054 小时前
数据库索引分类:数据结构、物理存储与逻辑角度详解
数据结构·数据库
SelectDB4 小时前
DeepSeek Harness 接入 Litefuse:完善 Agent 可观测与评估能力
数据库
这个DBA有点耶5 小时前
从库延迟的“二次放大”效应:一次大事务,拖垮整个读写分离
数据库·mysql·架构
LearnYard5 小时前
自然语言驱动的数据图表生成:几款工具功能对比实践
数据库·百度·powerpoint
一个有温度的技术博主6 小时前
MySQL 三大日志协同机制:redo log、undo log 与 binlog 的联合运作
数据库·mysql·oracle