MySQL UNION 操作符详细说明

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。它要求每个 SELECT 语句的列数和数据类型必须相同。UNION 默认会去除重复的行,如果需要保留重复行,可以使用 UNION ALL

语法:

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

特点:

  1. 去重:UNION 会自动去除重复的行。

  2. 列数和数据类型:每个 SELECT 语句的列数和数据类型必须一致。

  3. 排序:可以在最后一个 SELECT 语句后使用 ORDER BY 对结果进行排序。

案例:

假设有两个表 employeescontractors,结构如下:

  • employees 表:

    idnameage
    1Alice30
    2Bob25
  • contractors 表:

    idnameage
    1Carol28
    2Bob25

案例 1:使用 UNION 合并两个表的数据并去重

SELECT name, age FROM employees
UNION
SELECT name, age FROM contractors;

结果:

nameage
Alice30
Bob25
Carol28

案例 2:使用 UNION ALL 合并两个表的数据并保留重复行

SELECT name, age FROM employees
UNION ALL
SELECT name, age FROM contractors;

结果:

nameage
Alice30
Bob25
Carol28
Bob25

案例 3:使用 UNION 并排序

SELECT name, age FROM employees
UNION
SELECT name, age FROM contractors
ORDER BY age DESC;

结果:

nameage
Alice30
Carol28
Bob25

通过以上案例,可以清楚地了解 UNION 操作符的使用方法和效果。

本篇文章内容来源于:MySQL UNION 操作符详细说明以及案例