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

相关推荐
杰克尼38 分钟前
MYSQL-175. 组合两个表
数据库·mysql
DemonAvenger40 分钟前
MySQL索引原理深度解析与优化策略实战
数据库·mysql·性能优化
189228048611 小时前
NY270NY273美光固态闪存NY277NY287
服务器·网络·数据库·科技·性能优化
星霜笔记5 小时前
Docker 部署 MariaDB+phpMyAdmin+Nextcloud 完整教程
运维·数据库·docker·容器·mariadb
wyiyiyi10 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
天宇_任11 小时前
Mysql数据库迁移到GaussDB注意事项
数据库·mysql·gaussdb
xiep143833351014 小时前
Ubuntu 安装带证书的 etcd 集群
数据库·etcd
Java小白程序员14 小时前
Spring Framework:Java 开发的基石与 Spring 生态的起点
java·数据库·spring
老虎062715 小时前
数据库基础—SQL语句总结及在开发时
数据库·sql·oracle
爱掘金的土拨鼠16 小时前
国产化dm数据库锁表解锁
数据库