MySQL левый счетчик соединений не показывает все записи из левой таблицы

0

У меня две таблицы: vcases(id,statusCategoryID,userID) и vstatuses(id,category).

Я пытаюсь отобразить панель мониторинга, где пользователь может видеть количество дел, которые они отправили по каждой категории.

Я пробовал левое соединение, но я не получаю все имена категорий для определенного пользователя.

Это то, что я делаю:

SELECT vs.name as 'catName'
      , COUNT(vs.name) as 'count' 
  FROM vstatuses vs 
  LEFT 
  JOIN vcases v 
    ON vs.id = v.statusCategoryID 
 WHERE v.userID = 2 
 GROUP 
    BY vs.names 
 ORDER
    BY vs.id

Я хочу показать это

+----------------------------------------+
| Category | Submitted | Opened | Solved |
| Count    |    3      |   1    |   0    |
+----------------------------------------+

Но я получаю это

+-------------------------------+
| Category | Submitted | Opened |
| Count    |    3      |   1    |
+-------------------------------+

Я хочу включить categoryName даже если в этой категории нет дела.

  • 0
    Поменяйте ГДЕ на И
Теги:
left-join

1 ответ

0
Лучший ответ

Фильтр должен быть с предложением ON

 LEFT JOIN vcases v ON vs.id=v.statusCategory AND v.userID = 2

В противном случае это, как если бы это INNER JOIN

Ещё вопросы

Сообщество Overcoder
Наверх
Меню