当我们需要从两个或多个表中获取数据时,MySQL提供了Union操作符,可以用于合并两个或多个SELECT语句的结果集,且不会显示重复的行。在本文中,我们将介绍MySQL Union操作符的基础知识点,包括其语法、用法和示例。
语法
Union操作符的语法如下:
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
- column_name(s):要从结果集中选择的列。
- table1, table2:要合并的表的名称。
请注意,在使用Union操作符时,要保证两个SELECT语句中所选的列数相同,并且数据类型也相同。
Union All操作符也是一种用于合并结果集的操作符,它与Union操作符不同的是,它允许显示重复的行。语法如下:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
示例
我们来看两个示例,用于说明Union操作符的用法和功能。
示例一
假设我们有两个表格table1
和table2
,它们包含相同的列(id
,name
和age
),并且它们都有以下数据:
table1
表格
id | name | age |
---|---|---|
1 | Amy | 16 |
2 | Bob | 20 |
3 | Carl | 25 |
table2
表格
id | name | age |
---|---|---|
4 | David | 31 |
5 | Elina | 22 |
6 | Franka | 28 |
如果我们想要将这两个表格合并成一个结果集,并去重,可以使用以下SQL语句:
SELECT id, name, age FROM table1
UNION
SELECT id, name, age FROM table2;
运行以上查询,得到以下结果:
id | name | age |
---|---|---|
1 | Amy | 16 |
2 | Bob | 20 |
3 | Carl | 25 |
4 | David | 31 |
5 | Elina | 22 |
6 | Franka | 28 |
示例二
现在,我们将再介绍一种使用Union操作符的示例。假设我们有两个表格users
和customers
,每个表格都有一个country
列。
users
表格
id | name | country |
---|---|---|
101 | Alice | USA |
102 | Bob | Canada |
103 | Cindy | USA |
customers
表格
id | name | country |
---|---|---|
201 | David | UK |
202 | Elina | France |
203 | Franka | Italy |
如果我们想要查找所有的country
值(去重),可以使用以下SQL语句:
SELECT country FROM users
UNION
SELECT country FROM customers;
运行以上查询,得到以下结果:
country |
---|
Canada |
France |
Italy |
UK |
USA |
以上就是使用Union操作符的两个示例。Union操作符是MySQL中常用的,非常实用的操作符,可以在多个表格之间进行数据合并,并在结果集中去重。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL UNION操作符基础知识点 - Python技术站