MySQL group by和left join并用解决方式
MySQL group by和left join并用
最近在做一个联查时遇到了一个问题,group by和left join并用的时候,发现记录没法查出来,原因其实
是自己的sql写得不太好,在同事帮助下得到了解决,下面上SQL
account_log
为记录表customer
为用户表
没解决前的sql
SELECT customer.Alias,SUM(account_log.money) AS money,account_log.cid AS cid FROM `customer` LEFT JOIN account_log ON account_log.cid = customer.id WHERE customer.Alias = '123' GROUP BY customer.Alias;
上面的这种写法主要是想通过联查然后统计出记录表用户所有的money字段,但是如果在记录表没有记录的情况下,group by查出来的结果会为空,这样就导致了用户数据也显示不出来了。
重写sql如下
SELECT * FROM `customer` c LEFT JOIN `(SELECT cid,SUM(money) AS money FROM account_log GROUP BY cid ) m` ON c.id = m.cid WHERE c.Alias = '123'
居然还有这种操作,left join里面居然还能用子查询,money的统计也能获取到,棒!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
centos7环境下二进制安装包安装 mysql5.6的方法详解
这篇文章主要介绍了centos7环境下二进制安装包安装 mysql5.6的方法,详细分析了centos7环境下使用二进制安装包安装 mysql5.6的具体步骤、相关命令、配置方法及操作注意事项,需要的朋友可以参考下2020-02-02MySQL数据同步出现Slave_IO_Running: No问题的解决
本人最近工作中遇到了Slave_IO_Running:NO报错的情况,通过查找相关资料终于解决了,下面这篇文章主要给大家介绍了关于MySQL数据同步出现Slave_IO_Running: No问题的解决方法,需要的朋友可以参考下2023-05-05Win10安装mysql8.0.15 winx64及连接服务器过程中遇到的问题
这篇文章主要介绍了Win10安装mysql8.0.15 winx64及连接服务器过程中遇到的问题,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-12-12关于Mysql update修改多个字段and的语法问题详析
这篇文章主要给大家介绍了关于mysql update修改多个字段and的语法问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
最新评论