sql >> Databáze >  >> RDS >> Mysql

spojit dvě tabulky spolu s počtem záznamů z druhé tabulky na základě podmínky

Použijte LEFT JOIN namísto 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;

Je také důležité posunout predikát p.is_active = 1 z WHERE klauzule na ON , takže všechny záznamy categories tabulky jsou vráceny dotazem.




  1. Rozdíl mezi literály N'String' a U'String' v Oracle

  2. Optimalizuji můj výpis mysql! - RAND() PŘÍLIŠ POMALÉ

  3. Proximity Search

  4. SQL Server 2016:Vytvořte zobrazení