縱向合併查詢又稱爲聯合查詢,它是用union關鍵字把多條select語句的查詢結果合併爲一個結果集。
縱向合併的前提是被合併的結果集的字段數量、順序和數據類型必須完全一致。字段名不一樣的情況下,會將第一個結果集的字段名作爲合併後的虛擬結果集的字段名。
select <字段1>[,<字段2>,…] from <表名1>
union[ all]
select <字段1>[,<字段2>,…] from <表名2>;
create table t1(key1 char,v1 int);
create table t2(key2 char,v2 int);
insert into t1 values('a',1),('a',2),('b',3),('c',4),('a',13);
insert into t2 values('b',10),('b',11),('a',12),('a',13),('e',14);
- union去重
mysql> select * from t1
-> union
-> select * from t2;
+------+------+
| key1 | v1 |
+------+------+
| a | 1 |
| a | 2 |
| b | 3 |
| c | 4 |
| a | 13 |
| b | 10 |
| b | 11 |
| a | 12 |
| e | 14 |
+------+------+
- union all不去重
mysql> select * from t1
-> union all
-> select * from t2;
+------+------+
| key1 | v1 |
+------+------+
| a | 1 |
| a | 2 |
| b | 3 |
| c | 4 |
| a | 13 |
| b | 10 |
| b | 11 |
| a | 12 |
| a | 13 |
| e | 14 |
+------+------+