在 SQL 中,UNION 子句用于将两个或多个 SELECT 语句的结果集合并成一个结果集。UNION 会去除重复的行,如果你想要包含重复的行,请使用 UNION ALL。以下是 UNION 子句的基本用法:
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