UNION用于合并多个SELECT结果并去重,UNION ALL保留重复行;要求列数相同、数据类型兼容,列名取自第一个查询。
UNION是 MySQL 中用于合并两个或多个SELECT查询结果集的操作符。它会把多个查询返回的行组合成一个结果集,并自动去除重复的行。
基本语法SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2;使用UNION
时,有几个关键要求:
每个 SELECT 语句中的列数量必须相同对应列的数据类型需要兼容结果集的列名来自第一个 SELECT 语句UNION 与 UNION ALL 的区别默认的UNION会去重,而UNION ALL保留所有行(包括重复)。
UNION:自动删除重复记录,性能稍慢UNION ALL:不检查重复,速度快,适合确定无重复或需要保留重复的场景使用示例假设有两个表:students 和 teachers,都有 name 字段:SELECT name FROM students UNION SELECT name FROM teachers;这条语句会列出所有学生和教师的名字,相同名字只出现一次。
MySQL(Linux)
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
下载
如果改用:
SELECT name FROM students UNION ALL SELECT name FROM teachers;那么即使名字重复,也会全部显示出来。
基本上就这些,UNION 是处理多表数据合并时非常实用的工具,注意结构一致性和是否需要去重就行。
