UNION 关键字在 SQL 中用于组合两个或多个 SELECT 语句的结果。它允许合并来自不同表或在不同条件下选择的数据。
语法
UNION 语法的基本格式如下:
sql
SELECT 列名1, 列名2, ...
FROM 表名1
UNION
SELECT 列名1, 列名2, ...
FROM 表名2;
需要注意的是,两个 SELECT 语句中列的数量和数据类型必须匹配。
示例
假设我们有两个表,分别是 users 和 orders 。 users 表包含用户信息,而 orders 表包含订单信息。我们想要获取所有用户的姓名及其相应订单号。我们可以使用 UNION 如下:
sql
SELECT name
FROM users
UNION
SELECT customer_name AS name
FROM orders;
结果将是一个包含所有用户姓名和订单客户名的列表。
UNION ALL
UNION ALL 类似于 UNION,但它不会删除重复的行。这意味着结果将包含两个 SELECT 语句中所有选择的数据,即使它们包含重复的行。
sql
SELECT name
FROM users
UNION ALL
SELECT customer_name AS name
FROM orders;
注意
* 对于 UNION,列的顺序和数据类型必须匹配。
* UNION ALL 会返回重复的行,而 UNION 不会。
* UNION 可以用于合并来自多个数据源的数据。
* UNION 可以与其他 SQL 语句一起使用,例如 WHERE、GROUP BY 和 ORDER BY。