Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL - Seleziona con COUNT che restituisce una riga NULL

Penso che tu voglia un left join invece di un inner join poiché vuoi restituire un conteggio di 0 invece di una riga mancante quando non c'è corrispondenza c record per un dato b registrare.

Inoltre, dovresti includere un group by quando si utilizza una funzione aggregata, come 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