专栏首页仙士可博客mysql 统计join数据的条数

mysql 统计join数据的条数

当mysql  left join 或者 right join 时,有时候会发现count(*)是无法统计正确数据的

主要原因是因为,left 与right join的特性问题

例如我需要查询所有有提现记录的会员总数

 SELECT *

 FROM chenrui_users u

 LEFT JOIN chenrui_money_log as m on m.user_id = u.id

 WHERE ( m.add_time >= '2017-08-27' ) group by user_id

查询结果为

会员总数为49条,如果要增加分页的话,就必须先统计出条数

 SELECT count(*)

 FROM chenrui_users u

 LEFT JOIN chenrui_money_log as m on m.user_id = u.id

 WHERE ( m.add_time >= '2017-08-27' ) -- group by user_id 统计时group by需要去除

当这时候统计条数是错误的,将会统计出left join的数据

那该怎么统计这个数据呢?

mysql子查询则可以统计出该结果

select

 count(*)

FROM
(
 SELECT u.id

 FROM chenrui_users u

 LEFT JOIN chenrui_money_log as m on m.user_id = u.id

 WHERE ( m.add_time >= '2017-08-27' )

group by u.id

)

 as a

结果为:

完美解决

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mysql数据库多表各种join用法

    在数据库查询中,往往会需要查询多个表的数据,比如查询会员信息同时查询关于这个会员的订单信息,如果分语句查询的话,效率会很低,就需要用到join关键字来连表查询了

    仙士可
  • php自带的缓存扩展-APCu

    在很多业务中,咱们都会碰到需要缓存数据的时候,而缓存方案有很多,也可以借助redis,memcache等第三方来进行缓存

    仙士可
  • 关于在windows上进行swoole开发的软件使用

    转眼就是2019年了,又好久没更新博客了,今天带来我在windows下写swoole代码(买不起mac的仙士可)

    仙士可
  • [PHP] RBAC权限与审批流的简单数据库构想

    陶士涵
  • 简单的权限(拦截)管理

    晚上没宵夜
  • 面试官:mysql如何重置自增id

    面试官:咱们聊聊mysql的自增id。mysql自增id给我们的自增主键定义带来了很大的方便,但是经常mysql的自增id会有不连续情况,能说说什么场景下mys...

    jinjunzhu
  • AnnotationProcessor实战:实现ButterKnife的findViewById方法

    要实现findViewById,需要四个参数(控件类型,控件变量名,宿主view(通常是activity,我们一般省去),以及控件id) BindView 通...

    提莫队长
  • 基于python实现把json数据转换成Excel表格

    首先在cmd里安装tablib模块,tablib 模块可以完美实现,json 转 excel,安装方法:pip instal tablib

    砸漏
  • EasyValidate优雅地校验提交数据完整性

    在日常的Android开发中,我们在做登录注册等带有提示性输入校验的时候。常常会写样子写代码:

    砸漏
  • 玩转Mysql系列 - 第8篇:分组查询详解(group by & having)

    where是在分组(聚合)前对记录进行筛选,而having是在分组结束后的结果里筛选,最后返回整个sql的查询结果。

    路人甲Java

扫码关注云+社区

领取腾讯云代金券