Did you make it a LEFT (OUTER) JOIN as well (something like
below)? Not sure about what database you are using, but the
ISNULL() function in MSSQL will convert any instances where you
don't have a match to a 0 for counting purposes.
SELECT r.retailer_name, r.id, r.shortname,
d.id AS wid,d.merchant_id, d.user_id, d.e_updates,
COUNT(ISNULL(c.merchant_id, 0)) AS cc_count
FROM cc_watchlists d
LEFT JOIN merchants r ON d.merchant_id=r.id
LEFT JOIN ccsample c ON d.merchant_id=c.merchant_id
WHERE d.user_id=#SESSION.Auth.ID#
GROUP BY r.retailer_name, r.id, r.shortname,
d.id,d.merchant_id, d.user_id, d.e_updates
ORDER BY r.retailer_name ASC
Phil