如何使用mysql联合查询_mysql联合查询操作方法

来源:这里教程网 时间:2026-02-28 20:28:10 作者:

在MySQL中,联合查询是通过UNIONUNION ALL操作符将多个SELECT语句的结果集合并成一个结果集。这种查询方式常用于从结构相似但数据来源不同的表中提取统一格式的数据。

UNION与UNION ALL的区别

UNION会自动去除结果集中重复的行,而UNION ALL保留所有行,包括重复项。因此,UNION ALL的执行效率通常更高,适合不需要去重的场景。

UNION:去重合并,性能稍低 UNION ALL:包含重复,速度快

基本语法格式

联合查询的基本结构如下:

SELECT 列1, 列2 FROM 表1
UNION [ALL]
SELECT 列1, 列2 FROM 表2;

注意点:

每个SELECT语句中的列数必须相同 对应列的数据类型需要兼容 最终结果集的列名以第一个SELECT语句的列名为准

实际应用示例

假设有两个表:sales_januarysales_february,结构相同,都包含nameamount字段。

想要查询两个月份的销售记录,可以这样写:

SELECT name, amount FROM sales_january
UNION ALL
SELECT name, amount FROM sales_february;

如果希望去除重复的销售记录(比如同一个人在两个月金额相同),使用UNION:

SELECT name, amount FROM sales_january
UNION
SELECT name, amount FROM sales_february;

排序与限制结果

若要对联合后的结果进行排序,需在最后一个SELECT语句后使用ORDER BY:

SELECT name, amount FROM sales_january
UNION ALL
SELECT name, amount FROM sales_february
ORDER BY amount DESC;

也可以结合LIMIT来获取前N条数据:

... ORDER BY amount DESC LIMIT 10;

基本上就这些。掌握UNION和UNION ALL的使用,能有效整合分散在多个表中的数据,提升查询灵活性。关键是确保各查询结构一致,避免因列不匹配导致错误。

相关推荐