比方說,空值,有兩個表:返回,而不是在SQL查詢中的空集
select * from users;
+-------+------+
| login | type |
+-------+------+
| test1 | A |
| test2 | A |
| test3 | B |
+-------+------+
和
select * from money;
+-------+--------+------------+
| login | amount | date |
+-------+--------+------------+
| test1 | 10.00 | 1325379661 |
| test1 | 20.00 | 1357002061 |
| test2 | 33.30 | 1388538061 |
+-------+--------+------------+
我需要從用戶表登錄&類型字段和選定日期範圍內第二個表格中金額字段的總和。如果選定期間的金額爲空,或者'金錢'表中沒有任何登錄記錄,則返回零值(非空集)。
我做的方式如下:
SELECT u.login,u.type, SUM(m.amount) as amount
FROM users AS u
LEFT JOIN money AS m ON m.login=u.login
WHERE date>1388710861 GROUP BY u.login;
該查詢返回合理空集,但我需要讓用戶爲他們的名單和零金額:
+-------+------+--------+
| login | type | amount |
+-------+------+--------+
| test1 | A | 0.00 |
| test2 | A | 0.00 |
| test3 | B | 0.00 |
+-------+------+--------+
這是怎麼回事可能?
我想要得到的結果已經發布了。請看一下。 – Sray 2014-10-12 14:49:44
看看這個: http://stackoverflow.com/questions/7602271/how-do-i-get-sum-function-in-mysql-to-return-0-if-no-values-are-found – Multisync 2014-10-12 14:52:36
我已經試過COALESCE。沒有運氣,返回相同的空集。我的情況通過使用多個連接變得複雜,我想正確的方法在於改變表的連接方式。我已經嘗試了多個變體,甚至子查詢,但得到了相同的結果。此外,我已經搜索了類似的情況Stackoverflow,但沒有找到任何。 – Sray 2014-10-12 14:58:41