sql >> Base de Datos >  >> RDS >> Mysql

MySQL:seleccione con COUNT devolviendo una fila NULL

Creo que quieres una left join en lugar de una inner join ya que desea devolver un recuento de 0 en lugar de una fila faltante cuando no hay una c coincidente registro para un b dado grabar.

Además, debe incluir un group by cuando se usa una función 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