UNION
是 MySQL 中的一个集合操作符,用于合并两个或多个 SELECT
语句的结果集。它会自动去除重复的行,并且默认按照列的顺序进行排序。
SELECT column1, column2, ...
FROM table1
WHERE condition
UNION
SELECT column1, column2, ...
FROM table2
WHERE condition;
UNION
会去除重复的行。假设有两个表 employees
和 contractors
,它们都有 name
和 salary
列,你想获取所有员工和承包商的名单,并去除重复项。
SELECT name, salary
FROM employees
UNION
SELECT name, salary
FROM contractors;
UNION
查询结果不正确?原因:
UNION
操作符要求每个 SELECT
语句返回的列数必须相同。SELECT
语句返回的列的数据类型必须兼容。UNION
会按照列的顺序进行排序,如果排序不符合预期,可以使用 ORDER BY
子句。解决方法:
SELECT
语句返回的列数相同。SELECT
语句返回的列的数据类型兼容。ORDER BY
:如果需要特定的排序顺序,可以在 UNION
后面添加 ORDER BY
子句。SELECT name, salary
FROM employees
UNION
SELECT name, salary
FROM contractors
ORDER BY salary DESC;
通过以上解释和示例,你应该能够理解 UNION
的用法及其相关优势、类型、应用场景和常见问题解决方法。
领取专属 10元无门槛券
手把手带您无忧上云