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