SELECT column1, column2, ...
FROM table1
WHERE condition
UNION
SELECT column1, column2, ...
FROM table2
WHERE condition;
在这个例子中,两个 SELECT 语句的结果集会合并,并且重复的行会被去除。
示例:
假设有两个表,一个是包含 IT 部门员工的表 it_employees,另一个是包含财务部门员工的表 finance_employees。
-- 创建 it_employees 表
CREATE TABLE it_employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(255)
);
-- 创建 finance_employees 表
CREATE TABLE finance_employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(255)
);
-- 向 it_employees 表插入数据
INSERT INTO it_employees (employee_id, employee_name)
VALUES (1, 'John'), (2, 'Alice'), (3, 'Bob');
-- 向 finance_employees 表插入数据
INSERT INTO finance_employees (employee_id, employee_name)
VALUES (1, 'Jane'), (3, 'Charlie'), (4, 'David');
现在,如果你想获取所有部门的员工姓名,可以使用 UNION:
SELECT employee_name FROM it_employees
UNION
SELECT employee_name FROM finance_employees;
这将返回一个合并的结果集,包含 IT 部门和财务部门的员工姓名,重复的行会被去除。
如果你希望保留重复的行,可以使用 UNION ALL:
SELECT employee_name FROM it_employees
UNION ALL
SELECT employee_name FROM finance_employees;
UNION 和 UNION ALL 是在 SQL 查询中用于合并结果集的强大工具,使得可以在多个表中检索并合并数据。
转载请注明出处:http://www.zyzy.cn/article/detail/3350/SQL