SQL UNION 是用于合并两个或多个 SELECT 语句的结果集的操作符。它将两个或多个 SELECT 语句的结果合并成一个结果集,并去除重复的行。
以下是一个 SQL UNION 的实例:
假设我们有两个表,一个是 “employees” 表,包含员工的姓名和工资信息,另一个是 “customers” 表,包含客户的姓名和地址信息。我们想要获取所有员工和客户的姓名信息,可以使用 UNION 操作符来实现。
首先,我们可以使用以下 SELECT 语句获取员工的姓名信息:
SELECT name FROM employees;
然后,我们可以使用以下 SELECT 语句获取客户的姓名信息:
SELECT name FROM customers;
最后,我们可以使用 UNION 操作符将两个结果集合并起来:
SELECT name FROM employees
UNION
SELECT name FROM customers;
这样,我们就可以得到一个包含所有员工和客户姓名的结果集,且去除了重复的行。
下面的 SQL 语句从 “Websites” 和 “apps” 表中选取所有不同的country(只有不同的值):
实例
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
执行以上 SQL 输出结果如下:
注释:UNION 不能用于列出两个表中所有的country。如果一些网站和APP来自同一个国家,每个国家只会列出一次。UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!
当然可以!SQL的UNION操作符用于合并两个或多个SELECT语句的结果集。请注意,使用UNION时,每个SELECT语句必须拥有相同数量的列,并且对应列的数据类型必须大致相同。此外,列也必须以相同的顺序列出。
以下是使用UNION操作符的简单实例:
假设我们有两个表:Customers 和 Suppliers。
- Customers 表:
+----+---------+-------+
| ID | Name | City |
+----+---------+-------+
| 1 | Customer1| City A |
| 2 | Customer2| City B |
| 3 | Customer3| City C |
+----+---------+-------+
- Suppliers 表:
+----+---------+-------+
| ID | Name | City |
+----+---------+-------+
| 1 | Supplier1| City D |
| 2 | Supplier2| City E |
| 3 | Supplier3| City F |
+----+---------+-------+
如果我们想要从这两个表中选择所有的行,并将它们合并为一个结果集,我们可以使用UNION操作符如下:
SELECT Name, City FROM Customers
UNION
SELECT Name, City FROM Suppliers;
这将返回以下结果集:
+---------+-------+
| Name | City |
+---------+-------+
| Customer1| City A |
| Customer2| City B |
| Customer3| City C |
| Supplier1| City D |
| Supplier2| City E |
| Supplier3| City F |
+---------+-------+
请注意以下几点:
- UNION操作符会自动去除重复的行。如果你希望保留重复行,可以使用UNION ALL。
- UNION操作符要求每个SELECT语句有相同数量的列,并且列的顺序必须相同。数据类型也必须大致相同。如果数据类型不同,可能会导致数据转换问题。