我正在運行此查詢,它從一個表中選擇幾個字段並從其他表中返回計數。SQL - 計數不返回零
我的問題:如果我的計數器字段之一計數爲零,它不會返回數字0,它只是空白 - 這是我想嘗試和解決的。
SELECT mem.member_id, mem.screen_name, mem.firstname, mem.lastname, mem.country_code,
mem.joined, rep.rep as reputation, com.cnt as comments FROM members AS mem
LEFT OUTER JOIN (
SELECT member_id, SUM(awarded_what) as rep
FROM members_reputation
GROUP BY member_id) rep
ON mem.member_id = rep.member_id
LEFT OUTER JOIN (
SELECT member_id, COUNT(comment_id) as cnt
FROM blog_comments
GROUP BY comment_id) com
ON mem.member_id = com.member_id
GROUP BY mem.member_id
ORDER BY mem.joined DESC
我想什麼是這樣的:
Screen Name | Comments
-----------------|--------------------
marty76 | 0
jonnyBoy12 | 0
adamApple | 12
但是,我得到這樣的事情,而不是!
Screen Name | Comments
-----------------|--------------------
marty76 |
jonnyBoy12 |
adamApple | 12
使用我的服務器端語言,通過用零替換空值可以很容易地解決這個問題。但是我想要直接從SQL獲得零,所以我可以通過計數來排序。
任何建議將是奇妙的。
不需要派生表 - 修正連接,解決問題。 – 2012-04-04 14:15:24
@OMGPonies:我從這個查詢中刪除了5個其他的LEFT OUTER JOIN計數,所以它對我的問題更容易理解。你的意思是你說的是什麼?我用其他方法測試派生表,並且迄今爲止贏得了性能。 – TheCarver 2012-04-04 14:30:51