Mysql
 sql >> Baza danych >  >> RDS >> Mysql

połącz dwie tabele wraz z liczbą rekordów z drugiej tabeli na podstawie warunku

Użyj LEFT JOIN zamiast 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;

Ważne jest również, aby przenieść predykat p.is_active = 1 z WHERE klauzula ON , aby wszystkie rekordy categories tabele są zwracane przez zapytanie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak tworzyć dynamiczne tabele przestawne w MySQL

  2. Kopiowanie bazy danych MySQL na inny komputer

  3. Tabela Unpivot w MySQL

  4. Wiele zapytań PDO

  5. wybrani użytkownicy mają więcej niż jeden odrębny rekord w mysql