Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - Sélectionnez avec COUNT renvoyant une ligne NULL

Je pense que vous voulez une left join au lieu d'une inner join puisque vous souhaitez renvoyer un nombre de 0 au lieu d'une ligne manquante lorsqu'il n'y a pas de c correspondant record pour un b donné enregistrer.

De plus, vous devez inclure un group by lors de l'utilisation d'une fonction d'agrégation, telle que 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