#例解union和union all的區別
mysql> create table u1 (i int primary key, j int);
query ok, 0 rows affected (0.27 sec)
mysql> create table u2 (i int primary key, j int);
query ok, 0 rows affected (0.05 sec)
mysql> insert into u1 values (1,1),(2,2);
query ok, 2 rows affected (0.06 sec)
records: 2 duplicates: 0 warnings: 0
mysql> insert into u2 values (1,1),(2,2);
query ok, 2 rows affected (0.03 sec)
records: 2 duplicates: 0 warnings: 0
mysql> (select i,j from u1) union (select i,j from u2);
+---+------+
| i | j |
+---+------+
| 1 | 1 |
| 2 | 2 |
+---+------+
2 rows in set (0.05 sec)
mysql> (select i,j from u1) union all (select i,j from u2);
+---+------+
| i | j |
+---+------+
| 1 | 1 |
| 2 | 2 |
| 1 | 1 |
| 2 | 2 |
+---+------+
4 rows in set (0.00 sec)
union all不會去重複行,union會去重複行。
」重「的定義為:整行資料都相等。rowkey相等,其它列值不等,不算重複行。例如:
mysql> insert into u1 values (3,1);
query ok, 1 row affected (0.02 sec)
mysql> insert into u2 values (3,3);
query ok, 1 row affected (0.02 sec)
mysql> (select i,j from u1) union all (select i,j from u2);
+---+------+
| i | j |
+---+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+---+------+
6 rows in set (0.00 sec)
mysql> (select i,j from u1) union (select i,j from u2);
+---+------+
| i | j |
+---+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
| 3 | 3 |
+---+------+
4 rows in set (0.00 sec)
oracle 中Union和Union all區別
以前一直不知道union和union all到底有什麼區別,今天來好好的研究一下,網上查到的結果是下面這個樣子,可是還是不是很理解,下面將自己親自驗證 union 對兩個結果集進行並集操作,不包括重複行,同時進行預設規則的排序 union all 對兩個結果集進行並集操作,包括重複行,不進行排序 下...
Mysql中的Union和Union All查詢
union 用於合併兩個或多個 select 語句的結果集,並消去表中任何重複行。union 內部的 select 語句必須擁有相同數量的列,列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。select name from a union select name fr...
Oracle中Union與Union All的區別
如果我們需要將兩個select語句的結果作為乙個整體顯示出來,我們就需要用到union或者union all關鍵字。union 或稱為聯合 的作用是將多個結果合併在一起顯示出來。union和union all的區別是,union會自動壓縮多個結果集合中的重複結果,而union all則將所有的結果全...