MySQL联合查询是将两个或多个SELECT语句的结果组合成一个结果集的方法。联合查询可以组合多个表中的数据,并获取比一次单独查询更全面的信息。下面是一个简单的例子:
SELECT customer_name,contact_name,country FROM customers UNION SELECT customer_name,contact_name,country FROM suppliers ORDER BY country;
上面的示例查询了两个表中的客户和供应商的名称和国家,然后将结果按国家排序并合并成一个结果集。在此过程中,UNION操作符用于组合两个SELECT语句的结果。
UNION查询必须满足以下要求:
- 每个SELECT语句必须包含相同数量的列。
- 每个SELECT语句中相应的列必须具有相同的数据类型。
- 列的顺序必须相同。
当使用联合查询时,还可以使用UNION ALL操作符,它返回所有重复行和非重复行。例如:
SELECT customer_name,contact_name,country FROM customers UNION ALL SELECT customer_name,contact_name,country FROM suppliers ORDER BY country;
上面的查询将返回客户和供应商的所有记录,并按国家排序。如果使用UNION ALL而不是UNION,则结果将包含重复的记录。