Ik denk dat je een left join
wilt hebben in plaats van een inner join
aangezien u een telling van 0 wilt retourneren in plaats van een ontbrekende rij wanneer er geen overeenkomende c
is opnemen voor een gegeven b
opnemen.
U moet ook een group by
. opnemen bij gebruik van een aggregatiefunctie, zoals 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