मुझे लगता है कि आप एक left join inner join . के बजाय चूंकि आप c . का कोई मिलान नहीं होने पर लापता पंक्ति के बजाय 0 की गिनती वापस करना चाहते हैं किसी दिए गए b . के लिए रिकॉर्ड करें रिकॉर्ड।
साथ ही, आपको एक group by . शामिल करना चाहिए एक समग्र फ़ंक्शन का उपयोग करते समय, जैसे कि 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