sql >> Databasteknik >  >> RDS >> Mysql

slå samman två tabeller tillsammans med antalet poster från den andra tabellen baserat på tillstånd

Använd LEFT JOIN istället för 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;

Det är också viktigt att flytta predikatet p.is_active = 1 från WHERE sats till ON , så att alla poster av categories tabell returneras av frågan.




  1. Vilken betydelse har indexnamnet när man skapar ett index i MySQL?

  2. Hur man döljer ett felmeddelande

  3. PostgreSQL återkallar behörigheter från pg_catalog-tabeller

  4. uppdateringsfråga med join på två tabeller