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