MySQL 的 UNION
子句將多個 SELECT
語句的結果合並到一個結果集中。
為了對表執行UNION
,它們必須首先滿足以下條件:
• 相同的列數
• 相應的列必須具有兼容的數據類型
用法
SELECT column(s) FROM table1
UNION
SELECT column(s) FROM table2;
例子
考慮下表有關一些學生的信息:
student_id |
名稱 |
名字 |
day_enrolled |
年齡 |
用戶名 |
---|---|---|---|---|---|
1 |
Sky |
Towner |
2015-12-03 |
17 |
stowner1 |
2 |
Ben |
Davis |
2016-04-20 |
19 |
bdavis2 |
3 |
Travis |
Apple |
2018-08-14 |
18 |
tapple3 |
4 |
Arthur |
David |
2016-04-01 |
16 |
adavid4 |
5 |
Benjamin |
Town |
2014-01-01 |
17 |
btown5 |
可以使用此處的代碼創建上述示例表。
另請考慮下表有關一些教授的信息:
professor_id |
名稱 |
名字 |
day_hired |
年齡 |
用戶名 |
---|---|---|---|---|---|
1 |
Tom |
Willox |
2012-11-03 |
47 |
twillox1 |
2 |
Ralph |
Skeen |
2009-07-30 |
39 |
rskeen2 |
3 |
Hyun |
Lee |
2014-02-21 |
32 |
hlee3 |
4 |
Bryce |
Miller |
2004-10-01 |
53 |
bmiller4 |
可以使用此處的代碼創建上述示例表。
基本用法
返回學校所有學生和教授的姓名列表:
SELECT fname, lname FROM students
UNION
SELECT fname, lname FROM professors;
+----------+--------+
| fname | lname |
+----------+--------+
| Sky | Towner |
| Ben | Davis |
| Travis | Apple |
| Arthur | David |
| Benjamin | Town |
| Tom | Willox |
| Ralph | Skeen |
| Hyun | Lee |
| Bryce | Miller |
+----------+--------+
我們可以看到各個 SELECT
語句的結果已合並為一個結果集。這樣我們就可以同時看到students
和professors
表中的記錄。
注意
默認情況下,重複項將從並集中刪除。( UNION DISTINCT
與 UNION
相同)。 UNION ALL
將允許重複。
不同的列數
僅當涉及的 SELECT
語句返回相同數量的列時,我們才能執行 UNION
:
SELECT fname, lname, username FROM students
UNION
SELECT fname, lname FROM professors;
ERROR 1222 (21000): The used SELECT statements have a different number of columns
這裏我們得到一個錯誤,因為第一個 SELECT
語句返回三列 fname
、 lname
、 username
而第二個 SELECT
語句僅返回兩列 fname
和 lname
。
相關用法
- MySQL UNIX_TIMESTAMP()用法及代碼示例
- MySQL UNIX_TIMESTAMP方法用法及代碼示例
- MySQL UNHEX()用法及代碼示例
- MySQL UNCOMPRESSED_LENGTH( )用法及代碼示例
- MySQL UNHEX方法用法及代碼示例
- MySQL UNCOMPRESS( )用法及代碼示例
- MySQL UCASE方法用法及代碼示例
- MySQL UPPER方法用法及代碼示例
- MySQL UTC_DATE()用法及代碼示例
- MySQL UPPER()用法及代碼示例
- MySQL UUID_SHORT()用法及代碼示例
- MySQL UPDATE用法及代碼示例
- MySQL UTC_DATE方法用法及代碼示例
- MySQL UCASE()用法及代碼示例
- MySQL USER( )用法及代碼示例
- MySQL UTC_TIME()用法及代碼示例
- MySQL UTC_TIME方法用法及代碼示例
- MySQL UUID()用法及代碼示例
- MySQL UTC_TIMESTAMP方法用法及代碼示例
- MySQL UTC_TIMESTAMP()用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
- MySQL IS_IPV4()用法及代碼示例
注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | UNION。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。