MYSQL中union的用法

2021-09-26 18:15:42 字數 1964 閱讀 9354

1.union查詢就是把2條或者多條sql語句的查詢結果,合併成乙個結果集。

如:sql1: n行,sql2: m行,sql1 union sql2 ---> n+m行
2.union滿足什麼條件就可以用了?
只要結果集中的列數一致就可以.(如都是2列或者n列)
3.如果union後的結果有重複(即某2行,或n行,所有的列,值都一樣),怎麼辦?
這種情況是比較常見的,缺省會去重.不想去重可以使用union all.
4. 取自於2張表,通過"別名"讓2個結果集的列一致。那麼,如果取出的結果集,列名字不一樣,還能否union.
可以,而且取出的最終列名,以第1條sql為準	.
參考例項**:

create table num_a (

id varchar( 3 ) not null,

num int(3 ) unsigned not null

)charset utf8 engine myisam;

create table num_b (

id varchar( 3 ) not null,

num int(3 ) unsigned not null

)charset utf8 engine myisam;

insert into num_a values ( 'a', 5 );

insert into num_a values ( 'b', 10 );

insert into num_a values ( 'c', 15 );

insert into num_a values ( 'd', 10 );

insert into num_b values ( 'b', 5 );

insert into num_b values ( 'c', 15 );

insert into num_b values ( 'd', 20 );

insert into num_b values ( 'e', 99 );

1,union會去掉重複的行:

2、union all不會過濾重複的行

3、order by對union後的結果集排序

select id,num from num_a union select id, num from num_b order by num desc
4、把num_a和num_b不同的索引結果保留, 相同的索引結果相加 然後輸出:

select a.id, ( a.num + b.num ) as num from num_a as a inner join num_b as b on a.id = b.id

union all

select * from num_a as a where not exists( select * from num_b as b where a.id = b.id )

union all

select * from num_b as b where not exists( select * from num_a as a where a.id = b.id )

order by id asc

Oracle 中union的用法

例如 select date from store information union select date from internet sales 注意 union用法中,兩個select語句的字段型別匹配,而且字段個數要相同,如上面的例子,在實際的軟體開發過程,會遇到更複雜的情況,具體請看下面...

Oracle中UNION的用法

union 指令的目的是將兩個 sql 語句的結果合併起來,可以檢視你要的查詢結果.例如 select date from store information union select date from internet sales 注意 union用法中,兩個select語句的字段型別匹配,而且...

Oracle 中union的用法

union與union all的區別 2011 05 12 14 53 union與union all的區別 如果我們需要將兩個select語句的結果作為乙個整體顯示出來,我們就需要用到union或者union all關鍵字。union 或稱為聯合 的作用是將多個結果合併在一起顯示出來。union和...