UNION的一個限制是兩個 SQL 語句所產(chǎn)生的欄位需要是同樣的資料種類。另外,當我們用 UNION這個指令時,我們只會看到不同的資料值 (類似 SELECT DISTINCT)。 union只是將兩個結(jié)果聯(lián)結(jié)起來一起顯示,并不是聯(lián)結(jié)兩個表 UNION 的語法如下: [SQL 語句 1] UNION [SQL 語句 2] 假設(shè)我們有以下的兩個表格, Store_Information 表格 store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999 Internet Sales 表格 Date Sales Jan-07-1999 $250 Jan-10-1999 $535 Jan-11-1999 $320 Jan-12-1999 $750 而我們要找出來所有有營業(yè)額 (sales) 的日子。要達到這個目的,我們用以下的 SQL 語句: SELECT Date FROM Store_Information UNION SELECT Date FROM Internet_Sales 結(jié)果: Date Jan-05-1999 Jan-07-1999 Jan-08-1999 Jan-10-1999 Jan-11-1999 Jan-12-1999 有一點值得注意的是,如果我們在任何一個 SQL 語句 (或是兩句都一起) 用 "SELECT DISTINCT Date" 的話,那我們會得到完全一樣的結(jié)果。 SQL Union All UNION ALL 這個指令的目的也是要將兩個 SQL 語句的結(jié)果合并在一起。 UNION ALL 和 UNION 不同之處在于 UNION ALL 會將每一筆符合條件的資料都列出來,無論資料值有無重復(fù)。 UNION ALL 的語法如下: [SQL 語句 1] UNION ALL [SQL 語句 2] 我們用和上一頁同樣的例子來顯示出 UNION ALL 和 UNION 的不同。同樣假設(shè)我們有以下兩個表格: Store_Information 表格 store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999 Internet Sales 表格 Date Sales Jan-07-1999 $250 Jan-10-1999 $535 Jan-11-1999 $320 Jan-12-1999 $750 而我們要找出有店面營業(yè)額以及網(wǎng)絡(luò)營業(yè)額的日子。要達到這個目的,我們用以下的SQL語句: SELECT Date FROM Store_Information UNION ALL SELECT Date FROM Internet_Sales 結(jié)果: Date Jan-05-1999 Jan-07-1999 Jan-08-1999 Jan-08-1999 Jan-07-1999 Jan-10-1999 Jan-11-1999 Jan-12-1999