Penso che tu voglia un left join
invece di un inner join
poiché vuoi restituire un conteggio di 0 invece di una riga mancante quando non c'è corrispondenza c
record per un dato b
registrare.
Inoltre, dovresti includere un group by
quando si utilizza una funzione aggregata, come 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