MySQL合并查询结果的三种方法详解
在MySQL中,合并多个查询结果集主要可以通过UNION、UNION ALL以及JOIN(连接查询)来实现,其中UNION是最直接用于纵向合并结果集的操作符。

UNION操作符用于合并两个或多个SELECT语句的结果集,并自动去除重复的行,若想合并来自两个客户表的所有不重复的城市信息,可以这样写:
SELECT city FROM customers UNION SELECT city FROM suppliers ORDER BY city;
需要注意的是,每个SELECT语句查询的列数必须相同,且对应列的数据类型应当兼容。
与UNION不同,UNION ALL也用于纵向合并结果,但它保留所有重复的行,因为无需去重,UNION ALL的执行速度通常比UNION更快,当确定结果集没有重复或需要保留重复记录时,应优先使用UNION ALL以提高查询性能。
除了纵向合并,有时我们需要的是横向拼接结果,这就需要用到JOIN系列连接查询(如INNER JOIN, LEFT JOIN),它通过关联字段将多个表的列数据合并到一行中,将订单表与客户信息表按客户ID关联合并:
SELECT orders.order_id, customers.name FROM orders INNER JOIN customers ON orders.customer_id = customers.id;
选择哪种合并方式取决于具体需求:需要纵向堆叠且去重时用UNION;纵向堆叠且保留重复时用UNION ALL;需要根据关联键横向扩展列数据时则使用JOIN,合理运用这些方法,可以高效地整合MySQL中的数据,满足复杂的查询需求。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/14783.html发布于:2026-09-04





