Myslím, že chcete left join
místo inner join
protože chcete vrátit počet 0 místo chybějícího řádku, když neexistuje žádný odpovídající c
záznam pro daný b
záznam.
Také byste měli zahrnout group by
při použití agregační funkce, jako je 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