Tôi nghĩ bạn muốn một left join thay vì inner join vì bạn muốn trả về số lượng là 0 thay vì hàng bị thiếu khi không có c phù hợp ghi lại cho một b nhất định ghi lại.
Ngoài ra, bạn nên bao gồm một nhóm group by khi sử dụng một hàm tổng hợp, chẳng hạn như 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