mysql使用group by丢数据问题的记录

上周在做一个数据库关联查询的时候遇到一个很奇怪的问题

我的场景是这样的

主要有3张表

a表主要是a.id

b表与a表使用a.id和b.aid一一对应,包含其他内容

c表?与a表是多对一的关系,一个a.id对应多个c.id

我现在需要看一下一个aid对应了多少个cid同时把对应b表中的属性都取出来

使用了两个left join

大概语句是这样的

select a.*,b.*,count(c.id) from a left join b on a.id=b.aid left join c on a.id=c.aid? group by a.id

在具体的使用情况下,发现偶尔b表中的内容查不出来,相同的sql后面简单价格desc的排序就ok,asc的情况下就会有一两条丢失b表中的信息?

查了很久也没查到问题,一直以为是自己的程序或者是sql有问题

后来同事帮忙查到了根源

是mysql5.6的一个bug

mysql5.6在使用group by的时候是会出现这样的问题?,5.5就没有问题

如果依然想在5.6下来满足这样的情景,简单有两种方法,都是修改sql

第一种就是先查出来,再group by,而不是像上面一样查和group同时进行

第二种是枚举字段,字段都使用max函数处理一下,也能解决,字段要多就麻烦了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值