I am running this query which selects a few fields from one table and returns counts from some other tables.
My problem: if one of my counter fields counts zero, it doesn’t return the number 0, it’s just blank – which is what I would like to try and solve.
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
What I would like is something like this:
Screen Name | Comments
-----------------|--------------------
marty76 | 0
jonnyBoy12 | 0
adamApple | 12
But, I’m getting something like this instead!
Screen Name | Comments
-----------------|--------------------
marty76 |
jonnyBoy12 |
adamApple | 12
Using my server side language this is easily fixed, by replacing null values with a zero. But I would like to have the zeros coming straight from SQL so I can order by the counts.
Any suggestions would be marvelous.
Try the IFNULL Function