Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Selecione com COUNT retornando uma linha NULL


Acho que você quer uma left join em vez de uma inner join já que você deseja retornar uma contagem de 0 em vez de uma linha ausente quando não houver c correspondente registro para um determinado b registro.

Além disso, você deve incluir um group by ao usar uma função agregada, como 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