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

unisci due tabelle insieme al conteggio dei record dalla seconda tabella in base alla condizione

Usa LEFT JOIN invece di 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;

È anche importante spostare il predicato p.is_active = 1 da WHERE clausola su ON , in modo che tutti record di categories tabella vengono restituiti dalla query.