SQL如何合并多个查询结果

从2份表中分别查询4个结果,如何将这些结果合并在同一个查询结果当中?

4个查询的语句分别如下,分别是mz_ypxx和mz_ypxx_tc两份表:

select ypbm from mz_ypxx_tc;

select ypmc from mz_ypxx,mz_ypxx_tc where mz_ypxx_tc.ypbm=mz_ypxx.ypbm;

select tcbm from mz_ypxx_tc;

select ypmc from mz_ypxx_tc,mz_ypxx where mz_ypxx_tc.tcypbm=mz_ypxx.ypbm;
4个查询分别是4个不同的列,我现在就是想把这4列合在一起,合成一个有4列的表

合并结果一般用union或者union all,具体用什么取决于需求。

如数据如下:

A表:

id    name

1      å¼ ä¸‰

2      æŽå››

3      çŽ‹äº”


B表:

id     name

1       张三

2       赵六

3       孙七


如果

select id,name from A
union all
select id,name from B;

结果:

id    name

1      å¼ ä¸‰

2      æŽå››

3      çŽ‹äº”

1      å¼ ä¸‰

2      èµµå…­

3      å­™ä¸ƒ

如果:

select id,name from A
union
select id,name from B;

结果:

id    name

1      å¼ ä¸‰

2      æŽå››

3      çŽ‹äº”

2      èµµå…­

3      å­™ä¸ƒ

也就是说union all在执行后,不会把相同的结果合并,而union会把相同的结果只显示成一行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-14
用UNION 关键字啊
但是使用这个关键字你需要知道
并操作
1所有查询中的列数和列的顺序必须相同
2数据类型必须兼容啊
第2个回答  推荐于2019-08-13

1.两个不同的表进行查询,需要把结果合并,

比如table1的列为 id, user_id, type_id,pro_id;

table2的列为 id,user_id,collect_id;分别如下图所示

table1:

table2:

2.将两个表的查询结果合并到一起的查询语句为

select *, null as collect_id from table1 where user_id = 527

union

select id,user_id,null as type_id,null as pro_id, collect_id from table2 where user_id = 527;

3.结果为:

总结:其实就是把对应的列补充到没有该列的表中,在例子中就是把collect_id补充到table1中,

把type_id,pro_id补充到table2中。

本回答被网友采纳
第3个回答  2007-07-07
select ypbm from mz_ypxx_tcUNIONselect ypmc from mz_ypxx,mz_ypxx_tc where mz_ypxx_tc.ypbm=mz_ypxx.ypbmUNIONselect tcbm from mz_ypxx_tcUNIONselect ypmc from mz_ypxx_tc,mz_ypxx where mz_ypxx_tc.tcypbm=mz_ypxx.ypbm
相似回答