MySQL 使用 UNION 關(guān)鍵字來對兩個或多個 SELECT 語句的結(jié)果集進行并集操作。通過 UNION 操作,可以將兩個或多個表中符合條件的數(shù)據(jù)進行取并集。
UNION 語法
UNION 語法如下:
SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
其中,column1、column2 是要取的字段名,table1、table2 是要取的表名。
UNION 示例
假設(shè)有兩個表格:
table1
+----+---------+
| id | name |
+----+---------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
+----+---------+
table2
+----+---------+
| id | name |
+----+---------+
| 2 | David |
| 3 | Elsa |
| 4 | Frank |
+----+---------+
現(xiàn)在有一個需求,要求將 table1 和 table2 中的 name 字段取并集。可以使用如下 SELECT 語句:
SELECT name FROM table1
UNION
SELECT name FROM table2;
其中,這個 SQL 語句會返回以下結(jié)果:
+---------+
| name |
+---------+
| Alice |
| Bob |
| Charlie |
| David |
| Elsa |
| Frank |
+---------+
UNION ALL 關(guān)鍵字
UNION 關(guān)鍵字會自動去重,如果想要保留重復(fù)的記錄,可以使用 UNION ALL 關(guān)鍵字,如下:
SELECT name FROM table1
UNION ALL
SELECT name FROM table2;
使用 UNION ALL 返回的結(jié)果會包含重復(fù)記錄:
+---------+
| name |
+---------+
| Alice |
| Bob |
| Charlie |
| Bob |
| David |
| Elsa |
| Frank |
+---------+
說明
以上介紹了如何使用 MySQL 根據(jù)字段取并集,需要注意的是 UNION 關(guān)鍵字會自動去除重復(fù)的記錄。