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

juntar duas tabelas junto com a contagem de registros da segunda tabela com base na condição


Use LEFT JOIN em vez de INNER JOIN :
SELECT c.id, c.name, c.unit, COUNT(p.category_id) as active_count 
FROM `categories` c 
LEFT JOIN `products` p
    ON c.id = p.category_id AND p.is_active = 1 
GROUP BY c.id;

Também é importante mover o predicado p.is_active = 1 de WHERE cláusula para ON , para que todos registros de categories tabela são retornados pela consulta.