SQL 合併(串聯) 一個以上的查詢(SELECT)結果: UNION 運算子 (SQL UNION Operator)

SQL 合併(串聯) 一個以上的查詢(SELECT)結果: UNION 運算子 (SQL UNION Operator)

SQL 合併(串聯) 一個以上的查詢(SELECT)結果: UNION 運算子 (SQL UNION Operator)

 

資料來源: https://www.fooish.com/sql/union.html

 

UNION 運算子用來將兩個(以上) SQL 查詢的結果合併起來,而由 UNION 查詢中各別 SQL 語句所產生的欄位需要是相同的資料型別及順序。

UNION 查詢只會返回不同值的資料列,有如 SELECT DISTINCT

UNION 就是像是 OR (聯集),如果紀錄存在於第一個查詢結果集或第二個查詢結果集中,就會被取出。

UNION 與 JOIN 不同的地方在於,JOIN 是作橫向結合 (合併多個資料表的各欄位);而 UNION 則是作垂直結合 (合併多個資料表中的紀錄)。

UNION 語法 (SQL UNION Syntax)

SELECT column_name(s) FROM table_name1

UNION

SELECT column_name(s) FROM table_name2;

UNION 查詢返回的資料集欄位名稱,通常會依據第一個 SELECT 查詢的欄位名稱。

UNION 運算子查詢用法 (Example)

這是公司在台灣地區銷售的產品資料表 products_taiwan:

P_Id

P_Name

1

LCD

2

CPU

3

RAM

這是公司在中國大陸地區銷售的產品資料表 products_china:

P_Id

P_Name

1

Keyboard

2

CPU

3

LCD

現在我們想查出公司所有產品類別的資料,我們可以作一個 UNION 查詢:

SELECT P_Name FROM products_taiwan

UNION

SELECT P_Name FROM products_china;

查詢結果如下:

P_Name

LCD

CPU

RAM

Keyboard

UNION ALL

相反的,UNION ALL 則會列出所有的資料,不論是否重複。

例如查詢:

SELECT P_Name FROM products_taiwan

UNION ALL

SELECT P_Name FROM products_china;

查詢結果如下:

P_Name

LCD

CPU

RAM

Keyboard

CPU

LCD

 

 

 

 



 


發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *