我有以下的sql查詢,返回3級學生在測試中作出的。
學生1在考試中取得0,所以我的查詢結果只返回兩個學生的成績,我怎麼能在結果中包含零?我怎樣才能返回0使用sql中的計數功能
select u.uno, u.fname, u.lname, count(q.qno) as Test1 from ((users u
LEFT OUTER JOIN userresponse ur on ur.uno = u.uno) left outer join
question q on q.correctanswer = ur.response and q.qno = ur.qno and
q.eno = ur.eno) where q.eno = '1' group by u.uno, u.fname, u.lname
ur.eno是考試1,那麼問題編號和考試號連接並q.corectanswer = ur.response檢查什麼問題的用戶得到正確的ur.uno = u.uno剛剛加入表。
對於什麼數據庫?這就是爲什麼不使用ANSI-89 JOIN語法(你的查詢) - 沒有OUTER JOIN支持,但是子查詢將是等價的(但不太可取 - 相關的子查詢有效)。 – 2012-03-11 07:09:19
@OMGPonies - 在大多數數據庫中通常使用外連接功能(通常基於使用'+'或'*'裝飾比較結果),但同意移動到ANSI連接要好得多 – 2012-03-11 07:30:41
@Damien_The_Unbeliever:是的,那裏但它們也是供應商特定的。 [SQL Server](http://stackoverflow.com/questions/1428144/sql-what-does-mean),[Oracle](http://stackoverflow.com/questions/2425960/oracle-old-joins-a-工具腳本的轉換) – 2012-03-11 15:33:08