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

sammenføj to tabeller sammen med antallet af poster fra anden tabel baseret på betingelse

Brug LEFT JOIN i stedet for 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 er også vigtigt at flytte prædikatet p.is_active = 1 fra WHERE klausul til ON , så alle registreringer af categories tabel returneres af forespørgslen.




  1. Sådan får du en beregnet kolonnes definition i SQL Server ved hjælp af T-SQL

  2. MYSQL group_concat tilsvarende i Sybase ASE?

  3. Forsøger at udføre LOAD DATA INFILE med REPLACE og AUTO_INCREMENT

  4. Sådan kontrollerer du størrelsen af ​​alle tabeller i en database i MySQL