mysql union 跟 union all

1.union 多个表的时候,每个表有group by的情况下,可以过滤重复的数据

2.union all 多个表的时候 ,每个表都有group by的情况下也不过滤重复数据

举个例子:

现在有两个表,user表根据passport字段group by 共有 a b c d 四条数据

user_b 表根据passport字段group by 共有 a b c d e 五条数据

union 去重集合,user表跟user_b根据passport字段去重

结果是 a b c d + a b c d e的集合去重就是 a b c d e

select count(*) from (
  (select passport  from  `user` group by passport)
union 
  (select passport  from  `user_b` group by passport)
) as x

 

union all 并集,如果需要a+b的并集是:结果4 + 5 = 9

结果是 a b c d + a b c d e的集合不去重就是a b c d a b c d e = 9

select count(*) from (
  (select passport  from  `user` group by passport)
union all
  (select passport  from  `user_b` group by passport)
) as x

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值