首页/数据/SQL 速查/UNION 与 UNION ALL 合并结果集
本包目录(311 条)

UNION 与 UNION ALL 合并结果集

纵向拼接两个查询结果:UNION 去重、UNION ALL 保留全部行;能确定无重复时优先 UNION ALL,省去去重开销。

SQL 速查数据更新于 2026-10-12

示例

示例
-- 去重合并
SELECT city FROM users
UNION
SELECT city FROM suppliers;

-- 保留重复行(更轻量)
SELECT id FROM orders_2023
UNION ALL
SELECT id FROM orders_2024;
列数/类型两分支列数必须一致,类型需可兼容
结果列名取自首个 SELECT
去重UNION 等价 UNION DISTINCT;UNION ALL 不去重
NULLUNION 去重时多个 NULL 合并为一行

易错点

  • UNION 会触发去重(隐式排序或哈希),大结果集下比 UNION ALL 慢不少
  • 两分支列类型不兼容时可能报错或发生隐式转换,字符串与数字混拼要显式 CAST

数据来源与参考

  • MySQL 8.0 Reference Manual · UNION
  • PostgreSQL Documentation · UNION
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌