SQL如何合并多个查询结果

2024年11月18日 05:43
有4个网友回答
网友(1):

合并结果一般用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会把相同的结果只显示成一行。

网友(2):

用UNION 关键字啊
但是使用这个关键字你需要知道
并操作
1所有查询中的列数和列的顺序必须相同
2数据类型必须兼容啊

网友(3):

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中。

网友(4):

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