燕十八mysql中union后的结果有重复(即某2行或N行所有的列值相同),怎么解决?

解决:这种情况是比较常见的,默认会去重,如果不想去重使用union all.
这里举例说明更直观:分别建两张表test12,test13,其中test12的sname列的第2行与test13的sname列的第1行。
create table test12(sname varchar(20) )engine myisam charset utf8;
insert into test12 values (‘a’),(‘b’),(‘c’);
在这里插入图片描述
create table test13(sname varchar(20) )engine myisam charset utf8;
insert into test13 values (‘b’),(‘c’),(‘d’);
在这里插入图片描述
(1)union后去重
使用union后的结果为:
select * from test12 union select * from test13;
在这里插入图片描述
发现生成的结果集建两个表进行去重,也可以从集合的概念来讲,就是两个集合的并集,因为我们之前说过每一张表可以看做一个集合。
(2)union后不去重,只需将union改为union all
select * from test12 union all select * from test13;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值