sql >> Database >  >> RDS >> Mysql

voeg twee tabellen samen met het aantal records uit de tweede tabel op basis van voorwaarde

Gebruik LEFT JOIN in plaats van 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;

Het is ook belangrijk om het predikaat p.is_active = 1 . te verplaatsen van WHERE clausule naar ON , zodat alle records van categories tabel worden geretourneerd door de query.




  1. mysql draaitabeldatum (verticale naar horizontale gegevens)

  2. PDO-stuurprogramma's voor PostgreSQL op Mac installeren (met Zend voor eclipse)

  3. Hoe verwijder ik slechte karakters die niet geschikt zijn voor utf8-codering in MySQL?

  4. Wat is de tekenreeksaaneenschakelingsoperator in Oracle?