sql中union和union all的用法
如果我們需要將兩個select語句的結果作為一個整體顯示出來,我們就需要用到union或者union all關鍵字。union(或稱為聯合)的作用是將多個結果合併在一起顯示出來。 |
union和union all的區別是,union會自動壓縮多個結果集合中的重複結果,而union all則將所有的結果全部顯示出來,不管是不是重複。
目的:查詢出members表中group_id = 1和group_id為null的成員:
select m.member_name from members m where m.group_id = 1 union select m.member_name from members m where m.group_id is null;
結果:
分析:將上面查詢的結果和下面的查詢結果組合在了一起。會發現一個問題,“小珩”這條資料只展示了一遍,但是我們有兩個小珩呀。所以union會對查到的結果進行去重處理。
目的:解決union遇到的問題,將所有查到的結果查詢出來:
select m.member_name from members m where m.group_id = 1 union all select m.member_name from members m where m.group_id is null;
結果:
分析:可以看到“小珩”的資料展示了兩次,即union all會將查到的結果直接全部展示出來。
join聯結的兩個表,是透過匹配兩個表中相同欄位的相同的值,得到的結果集。可以認為是結果集的列拓寬了。join是使得查詢的內容更詳細了。union是取將兩個結果集的並集,但兩個結果集所擁有的列數是一樣、列的順序也一樣、欄位型別相同或相似(DBMS認為的相似),才能union並展示在一起。可以認為是結果集的行數多了。union是使得查詢的結果更多了。
union:對兩個結果集進行並集操作,不包括重複行,同時進行預設規則的排序;union在進行錶連結後會篩選掉重複的記錄,所以在錶連結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表union。union all:對兩個結果集進行並集操作,包括重複行,不進行排序; 如果返回的兩個結果集中有重複的資料,那麼返回的結果集就會包含重複的資料了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2746793/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Union和SQL Union All用法(轉)SQL
- sql中union和union allSQL
- sql中UNION和UNION ALL的區別SQL
- ORACLE中union/union all/Intersect/Minus用法Oracle
- SQL UNION 和 UNION ALL 操作符SQL
- 【SQL】UNION ALL 與UNION 的區別SQL
- union all和union的區別
- union和union all的區別
- Oracle中的Union、Union All、Intersect、MinusOracle
- SQL UNION 操作符 和 UNION ALL 操作符SQL
- union 和union all 使用區別
- Union與Union All的區別
- Oracle 中Union、Union All、Intersect、Minus(並,交,差)Oracle
- `FULL JOIN` 和 `UNION ALL`
- 理解full outer jion,union,union all
- Union和Union All到底有什麼區別
- sql_intersect交集_minus差集_並集union_union allSQL
- MySQL學習(五) UNION與UNION ALLMySql
- 查詢集合操作union與union all
- union用法
- sql_union all_列別名SQL
- Oracle的集合操作(union、union all、intersect、minus集合函式)Oracle函式
- 表連線 join和(+)、union和uion allUI
- UNION效率比UNION ALL效率高——SQL優化之Everything is possibleSQL優化
- union all 最佳化案例
- 【轉】UNION效率比UNION ALL效率高——SQL優化之Everything is possibleSQL優化
- SQL Server中的集合運算: UNION, EXCEPT和INTERSECTSQLServer
- Oracle union all 不走索引的優化Oracle索引優化
- 透過union all把sql查詢的結果拼接起來SQL
- MYSQL學習筆記24: 多表查詢(聯合查詢,Union, Union All)MySql筆記
- sql注入之union注入SQL
- 【SQL 學習】UNION 的排序方式!SQL排序
- oracle知識整理(1) union和union all的區別,left join和right join的區別(各種join的區別)Oracle
- SQL優化案例-union代替or(九)SQL優化
- msyql jion 和 union 的區別
- MYSQL merge union merge sort_union 的不同MySql
- 【FULL OUTER JOIN】全外連線的union all改寫方法
- SQL最佳化案例-union代替or(九)SQL