表結構如下
a 表**webid,**名稱webname
b 表使用者userid,所屬**webid,註冊時間regtime
咋一看:很簡單 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),問題解決了!
一條SQL語句研究
現有 select from t where a in 5,3,2,1,8,9,30.假設 a 是主鍵,in裡面的引數是唯一的。現要求輸出的結果集按照 in 提供的引數順序排序。而不是按照a本身的排序規則排序?另 如果不要求使用臨時表或表變數,那麼又有什麼辦法實現。臨時表方案參卡 create ta...
一條sql 語句的優化
第二個版本 一條sql搞定,使用巢狀查詢,費時2 3分鐘 select a.indexid,c.title,c.createdtime,c.intro,d.picurl,e.src,e.size,e.info from mms content index a,mms index node b,mms...
一條分頁的SQL語句
在網頁中如果顯示的資料太多就會佔據過多的頁面,而且顯示速度也會很慢。為了控制每次在頁面上顯示資料的數量,就可以利用分頁來顯示資料。select top pagesize from table where id notin select top prenum id from table order b...