Amy 原创整理|资料核验:2026-10-30
PostgreSQL文档说明,UNION合并两个查询结果时会移除重复行;UNION ALL则保留重复。两个查询必须返回相同数量的列,且对应列的数据类型兼容。
教学示例(虚构记录):两张清单都返回一行('A', 5),UNION结果只保留一行,UNION ALL保留两行。若两行实际上代表不同交易,而你只选出了同样的项目与数量,去重就可能掩盖业务上的两笔记录。
Amy建议:合并前先确定目标是集合去重还是保留所有事件,必要时带上能识别记录的字段。文档也不保证合并结果按第一段查询、第二段查询的顺序返回;需要稳定显示顺序时,应对最终结果明确排序。
官方来源:
https://www.postgresql.org/docs/current/queries-union.html