UNION
是一个 SQL 操作符,用于合并两个或多个 SELECT
语句的结果集
组合数据:当你需要从多个表中获取相似类型的数据时,可以使用 UNION
。例如,从两个不同的表中获取所有员工的信息。
SELECT employee_id, first_name, last_name FROM employees_usa
UNION
SELECT employee_id, first_name, last_name FROM employees_uk;
去重:UNION
会自动去除结果集中的重复行。如果你需要从一个表中获取唯一的值,可以使用 UNION
。
SELECT DISTINCT product_id FROM orders WHERE order_date < '2022-01-01'
UNION
SELECT DISTINCT product_id FROM returns WHERE return_date < '2022-01-01';
合并条件筛选结果:当你需要根据不同条件从同一个表中获取数据,并将这些数据合并到一个结果集中时,可以使用 UNION
。
SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 10
UNION
SELECT employee_id, first_name, last_name FROM employees WHERE salary > 5000;
排序和限制结果:虽然 UNION
不能直接用于排序和限制结果,但你可以将其与 ORDER BY
和 LIMIT
(或 ROWNUM
)结合使用。
(SELECT * FROM employees WHERE department_id = 10
UNION
SELECT * FROM employees WHERE department_id = 20)
ORDER BY salary DESC
LIMIT 10;
请注意,为了使用 UNION
,每个 SELECT
语句必须具有相同数量的列,并且相应列的数据类型必须兼容。此外,列名和顺序在第一个 SELECT
语句中定义,后续的 SELECT
语句必须遵循相同的列名和顺序。