Saya pikir Anda ingin left join alih-alih inner join karena Anda ingin mengembalikan hitungan 0 alih-alih baris yang hilang ketika tidak ada c . yang cocok merekam untuk b . yang diberikan merekam.
Selain itu, Anda harus menyertakan group by saat menggunakan fungsi agregat, seperti 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