Acho que você quer uma
left join
em vez de uma inner join
já que você deseja retornar uma contagem de 0 em vez de uma linha ausente quando não houver c
correspondente registro para um determinado b
registro. Além disso, você deve incluir um
group by
ao usar uma função agregada, como 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