回 帖 发 新 帖 刷新版面

主题:求一条sql语句:用到统计函数和条件有点想不出来怎么写了。

我有一个用户表:
查询某个人用:用户信息表,有地区province_id字段
select*from userinfo where user_id=78

这个是用户发言表
统计用户发言:
select count(*) from userfa where user_id=78  

两张表用user_id连接.
我要实现的效果是:统计没个人的发言总数,没发言的也要显示出来,在用用户信息表中的province_id分类..

我自己写了条语句:
select a.user_id,a.province_id,count(b.user_id) as num  from userinfo as a inner join userfa as b on  a.user_id=b.q_usernameid where province_id=20 group  by a.user_id,a.province_id

但现在问题是因为要显示发言为空的人 所以在聚合函数里面加个group by all 来现实不符合条件的纪录,但我又要用地区分类,这个有冲突啊。
因该怎么解决啊。

回复列表 (共1个回复)

沙发

这个可以用left join来实现!

你试试看:
select a.user_id,a.province_id,count(b.user_id) as num  from userinfo as a left join userfa as b on  a.user_id=b.q_usernameid where province_id=20 group  by a.user_id,a.province_id

我来回复

您尚未登录,请登录后再回复。点此登录或注册