Я запускаю следующий запрос,
SELECT status.status_id, status.status_name, COUNT(workbin.status_id) FROM `status` LEFT JOIN `workbin` ON workbin.status_id = status.status_id GROUP BY status.status_id
и получил выход
status_id status_name count 1 New 44 2 On Hold 1 3 In Analysis 2 4 In Development 12 5 In Testing 17 6 In Release 2 7 Completed 151 8 In Review 0 9 Unit Testing 0 11 Rework 0 12 Reopen 0
Теперь мне нужно добавить предложение where в этом запросе, чтобы получить данные на основе идентификатора пользователя в таблице workbin
таблиц. Таким образом, результат покажет только счетчик для пользователя. Идентификатор пользователя также сохраняется в таблице workbin
таблиц.
Если я добавлю рабочую таблицу where where where WHERE
.
task_assigned_id = 37
и найдено несколько идентификаторов status_id и status_name (которые имеют значение 0). Но мне нужны все подсчеты статуса для назначенного пользователю задачи (workbin.task_assigned_id).
Это связано с тем, что по WHERE
вы указываете, что в таблице workbin
указываются только записи, которые имеют значение task_assigned_id = 37
. Таким образом, вы не можете получить строки, для которых у вас нет строки в таблице workbin
(даже если она находится в таблице status
.) Решение может быть примерно таким, чтобы сохранить условия вашего WHERE
в части LEFT JOIN
:
SELECT status.status_id, status.status_name, COUNT(workbin.status_id) FROM `status` LEFT JOIN `workbin` ON workbin.status_id = status.status_id AND workbin.task_assigned_id= 37 GROUP BY status.status_id