Я пытаюсь отобразить количество категорий, даже если 0, для companyId = 2 в одном запросе:
categories
+--------+-----------+
| catId | catName |
+--------+-----------+
| 1 | cat1 |
| 2 | cat2 |
| 3 | cat3 |
products
+--------+-----------+---------------+---------+
| prodId | prodName | companyId | catId |
+--------+-----------+---------------+---------+
| 1 | prod1 | 2 | 1 |
| 2 | prod2 | 2 | 3 |
| 3 | prod3 | 1 | 3 |
SELECT c.catName, COUNT(p.catId) AS prod_catCount
FROM categories c
LEFT JOIN products p ON c.catId=p.catId
WHERE p.companyId=2
GROUP BY c.catId
Это приводит к:
+---------+---------------+
| catName | prod_catCount |
+---------+---------------+
| cat1 | 1 |
| cat3 | 1 |
Как можноЯ делаю это в результате:
+---------+---------------+
| catName | prod_catCount |
+---------+---------------+
| cat1 | 1 |
| cat2 | 0 | <-- Shows 0 count as well
| cat3 | 1 |
Я думал, что левое соединение позаботится об этом, но это не так.Есть идеи, как заставить это работать?