Jag tror att du vill ha en left join
istället för en inner join
eftersom du vill returnera ett antal 0 istället för en saknad rad när det inte finns någon matchande c
rekord för en given b
spela in.
Du bör också inkludera en group by
när du använder en aggregerad funktion, såsom count
.
SELECT
b.b_id,
COUNT(DISTINCT c.c_id) AS count
FROM
b
LEFT JOIN c
ON b.b_id=c.b_id
AND c.active='yes'
WHERE b.featured='no'
GROUP BY b.b_id