mysql 分组统计的问题

2020-01-13 17:25发布

三张表 用户,资源,任务表,主要字段如下,(时间的格式是时间戳,不用过多纠结)

user----userId ,username,group
res---resId,userId,create_time
mission ---mId,userId,create_time
现在要统计在某一时间段内,特定group人群的资源数和任务数量
注:不是所有人都有资源或者任务,但是要统计所有人,没有资源或任务的显示为0,这样的sql该怎么写

下面是我的sql

统计res
SELECT userId,userName,COUNT(resId) FROM user
LEFT JOIN res ON user.userId = res.userId
WHERE user.group = xxx
AND res.create_time BETWEEN 1567267200 AND 1578882077
GROUP BY user.userId

出现的问题:
很多用户没有资源就显示不出来了 sql哪里出现问题了

标签:
1条回答
迷人小祖宗
2楼-- · 2020-01-13 18:14

where条件的问题,where会对left join生成的数据做过滤
很多用户没有资源 => left join之后的数据res.create_time为null

查看更多
登录 后发表回答