阅读量:0
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
语句必须遵循相同的列名和顺序。