sql union和union all的用法及效率

2022-06-10 16:57:08 字數 1311 閱讀 7285

一:union指令的目的是將兩個sql語句的結果合併起來。

假設我們有以下的兩個**: 

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 

如果我們要找出來所有有營業額 (sales) 的日子。要達到這個目的,我們用以下的 sql 語句: 

select date from store_information 

union 

select date from internet_sales 

結果: 

date 

jan-05-1999 

jan-07-1999 

jan-08-1999 

jan-10-1999 

jan-11-1999 

jan-12-1999 

union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。

union all 這個指令的目的也是要將兩個 sql 語句的結果合併在一起。 union all 和 union 不同之處在於 union all 會將每一筆符合條件的資料都列出來,無論資料值有無重複。

如果上述的例子我們只用union all的話,則結果會是:

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 

總結:union是將具有相同結果的資料合併起來,同時會去掉所有重複的資料。

二:join與union區別

join 是兩張表做交連後裡面條件相同的部分記錄產生乙個記錄集

union是產生的兩個記錄集(欄位要一樣的)並在一起,成為乙個新的記錄集。

資料分析之sql UNION與UNION ALL

union操作符用於合併兩個或多個select語句的結果集。注意 union內部的select語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條select語句中的列的順序必須相同。sql union語法 select column name s from table name1 un...

SQL Union和Union All的使用方法

union指令的目的是將兩個sql語句的結果合併起來。從這個角度來看,我們會產生這樣的感覺,union跟join似乎有些許類似,因為這兩個指令都可以由多個 中擷取資料。union的乙個限制是兩個 sql 語句所產生的字段需要是同樣的資料種類。另外,當我們用 union這個指令時,我們只會看到不同的資...

sql union和union all的用法及效率

union指令的目的是將兩個sql語句的結果合併起來。從這個角度來看,我們會產生這樣的感覺,union跟join似乎有些許類似,因為這兩個指令都可以由多個 中擷取資料。union的乙個限制是兩個sql語句所產生的字段需要是同樣的資料種類。另外,當我們用 union這個指令時,我們只會看到不同的資料值...