最新的Web開發教程
 

SQL UNION運算符


在SQL UNION運算符將兩個或多個SELECT語句的結果。


在SQL UNION操作

UNION運算符用於將結果集的兩個或更多個SELECT語句結合起來。

請注意,在聯盟內每個SELECT語句都必須具有相同的列數。 列還必須具有類似的數據類型。 另外,在每個SELECT語句的列必須按相同的順序。

SQL UNION語法

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2 ;

Note: UNION操作符默認情況下只選擇不同的值。 要允許重複的值,請使用UNION ALL關鍵字。

SQL UNION ALL語法

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2 ;

PS:在UNION的結果集的列名通常是等於在UNION的第一個SELECT語句中的列名。


演示數據庫

在本教程中,我們將使用眾所周知的Northwind示例數據庫。

下面是從選擇"Customers"表:

客戶ID 顧客姓名 聯繫人姓名 地址 郵政編碼 國家
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico

而從選擇"Suppliers"表:

供應商ID 供應商名稱 聯繫人姓名 地址 郵政編碼 國家
1 異國情調的液體 夏洛特·庫珀 49吉爾伯特聖 倫敦 EC1 4SD 聯合王國
2 新奧爾良印第安趣 雪萊·伯克 郵政信箱78934 新奧爾良 70117 美國
3 奶奶凱利的家園 里賈納·墨菲 707牛津路。 安阿伯 48104 美國

SQL UNION例

下面的SQL語句從選擇所有不同的城市(只不同的值) "Customers""Suppliers"表:

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
試一試»

Note: UNION不能用於列出兩個表的所有城市。 如果幾個客戶和供應商共享同一個城市,每個城市將只列出一次。 UNION只選擇不同的值。 使用UNION ALL也選擇重複值!


SQL UNION ALL示例

下面的SQL語句使用UNION ALL從選擇所有 (重複值也)城市"Customers""Suppliers"表:

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
試一試»

SQL UNION ALL隨著WHERE

下面的SQL語句使用UNION ALL從選擇所有 (重複值也) 德國城市"Customers""Suppliers"表:

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
試一試»