2013-03-07 122 views
2

情況1:MySQL:如何在所有字段爲NULL時返回空記錄?

SELECT SUM(mark) AS totalMark, userID, credit 
FROM users, marks 
WHERE marks.receiverID = users.userID 
AND userID = '2' 

它將返回

totalMark userID credit 
--------------------------- 
0   2  0.0 



而這是非常好的,沒問題。但這裏的情況是2:

SELECT SUM(mark) AS totalMark, userID, credit 
FROM users, marks 
WHERE marks.receiverID = users.userID 
AND userID = '-1' 

結果:

totalMark userID credit 
--------------------------- 
NULL  NULL NULL 


但我要的是什麼也不返回(找不到記錄)。任何人都可以幫助我?

+0

任何時候,你會得到至少一排。 – Kermit 2013-03-07 18:32:45

回答

2

當您使用像SUM()這樣的聚合函數時,該查詢將返回一行。但是由於它沒有求和值,因此總和的結果是不確定的。

您可以解決此通過以下方式:您使用聚合

SELECT * FROM (
    SELECT SUM(mark) AS totalMark, userID, credit 
    FROM users, marks 
    WHERE marks.receiverID = users.userID 
    AND userID = '-1' 
) t 
WHERE t.totalMark IS NOT NULL; 
相關問題