UNION 指令的目的是將兩個 SQL 語句的結果合並起來。從這個角度來看, UNION 跟 JOIN 有些許類似,因為這兩個指令都可以由多個表格中撷取資料。 UNION 的一個限制是兩個 SQL 語句所產生的欄位需要是同樣的資料種類。另外,當我們用 UNION這個指令時,我們只會看到不同的資料值 (類似 Select DISTINCT)。 union只是將兩個結果聯結起來一起顯示,並不是聯結兩個表………… UNION 的語法如下:
[SQL 語句 1]
UNION
[SQL 語句 2]
Union All
UNION ALL 這個指令的目的也是要將兩個 SQL 語句的結果合並在一起。 UNION ALL 和 UNION 不同之處在於 UNION ALL 會將每一筆符合條件的資料都列出來,無論資料值有無重復。 UNION ALL 的語法如下:
[SQL 語句 1]
UNION ALL
[SQL 語句 2]
現在以實例來說明SQL Union的用法:(SQL Union All的用法是一樣的。只是SQL Union All不會考慮記錄是否有重復。)
比如:在一個會員表Users中有會員類型有兩種,一種為VIP會員,另一種為普通會員,為VIP會員的在VIP字段中為yes,普通會員的在VIP字段為no。
要在前台顯示10筆會員記錄,其中五個最早注冊的VIP會員和五個最早注冊的普通會員,最早注冊的VIP要排在最早注冊的普通會員的前面。
SQL語句如下:
程序代碼
select top 10 * from (select top 5 * from users where vip="yes" order by id desc
union select top 5 * from users where vip="no" order by id desc) as users