表结构如下
a 表
网站webid,网站名称webname
b 表
用户userid,所属网站webid,注册时间regtime
要求:统计各个网站某天(yyyy-MM-dd)内用户注册数量
咋一看:很简单 select a.id,a.name ,count(*) as regnumber from a inner jion b on a.webid=b.webid
where datediff(d,b.regtime,'yyyy-MM-dd')=0 group by a.id,a.name
但是事情没有那么简单,如 果某网站在这一天没有用户注册,那么该网站不会被列出来,
所以要使用左连接:
select a.id,a.name ,count(*) as regnumber from a LEFT OUTER JOIN b on a.webid =b.webid
where datediff(d,b.regtime,'yyyy-MM-dd')=0 group by a.id,a.name
问题出现了,某行数据如果没有用户注册的情况下 count(*)得到的结果应该是0,但却总是显示为1
最后把count(*) 改为count(b.userid),问题解决了!