UNION 在 MySQL 中用于合并查询结果,它将多个结果集中匹配的行组合并删除重复行,示例中的查询将合并 employees 和 customers 表中 name 列的匹配行。UNION ALL 不会删除重复行,并且 UNION 运算符是不可交换的,这意味着结果集的顺序取决于 SELECT 语句的顺序。

MySQL 中的 UNION
UNION 是 MySQL 中用于合并两个或多个 SELECT 语句结果的关键字。它将两个或多个结果集中的匹配行组合成一个新的结果集。
语法
SELECT ... FROM ... UNION SELECT ... FROM ...
行为
UNION 运算符具有以下行为:
- 合并来自不同结果集的匹配行,即使它们来自不同的表。
- 删除重复的匹配行。
- 如果结果集中存在 NULL 值,则保留行,但 NULL 值可能会干扰比较。
- 每个 SELECT 语句必须返回相同数量的列,并且这些列的类型和顺序必须兼容。
示例
思乐微信商城微分销系统是以.net+access/mssql进行开发的微信分销系统。基于微信朋友圈的传播,是打造以分销商为中心的全新微信分销体验。让粉丝实时有效的获取朋友圈流量并快速分享购买分佣。因为是基于微信,所以要在微信上体验才更好。关注我们的微信核心功能:1、自动提示用户关注微信,解决一般程序无关注微信公众号的过程2、只要通过链接进一次,不过好久注册,什么方面注册,只要是用微信注册的,都会算
SELECT name FROM employees UNION SELECT name FROM customers;
此查询将合并来自 employees 和 customers 表的 name 列,并删除重复的名称。
UNION ALL
UNION ALL 是 UNION 的变体,它不会删除重复行。
SELECT name FROM employees UNION ALL SELECT name FROM customers;
此查询将合并来自 employees 和 customers 表的 name 列,并保留重复的名称。
注意
- UNION 运算符是不可交换的,这意味着结果集的顺序取决于 SELECT 语句的顺序。
- 使用 UNION 时,必须确保合并的结果集具有兼容的结构。否则,MySQL 会引发错误。
- UNION 可以与其他集合运算符(如 INTERSECT 和 EXCEPT)结合使用以创建更复杂的结果集。









