1. 程式人生 > >寫出了一條有點難度的sql語句。

寫出了一條有點難度的sql語句。

表結構如下

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),問題解決了!