У меня есть следующие таблицы:
рабочих мест:
-------------------------------------------------------
| id | title | slug |
-------------------------------------------------------
рабочих мест:
-------------------------------------------------------
| id | job_type|
-------------------------------------------------------
приложений:
-------------------------------------------------------
| id | job_opening_id| application_state_id|
-------------------------------------------------------
application_states
-------------------------------------------------------
| id | name|
-------------------------------------------------------
Я хочу создать запрос, который подсчитывает различные значения application_state_id
----------------------------------------------------------------------------
| j.title| j.slug| e.job_type | candidates | hired
----------------------------------------------------------------------------
Это запрос, который у меня есть в данный момент:
SELECT
j.title,
j.slug,
e.job_type,
count(a1.application_state_id) as candidates,
count(a2.application_state_id) as hired
FROM
jobs AS j
INNER JOIN employments AS e ON j.employment_id = e.id
LEFT JOIN applications AS a1 ON a1.job_opening_id = job_openings.id
LEFT JOIN application_states AS as ON as.id = a1.application_state_id
LEFT JOIN applications AS a2 ON a2.job_opening_id = j.id AND a2.application_state_id = 1
GROUP BY
a1.application_state_id,
a2.application_state_id,
j.id,
j.title,
j.slug
Я думалЯ мог бы создать 2 соединения и установить application_state_id, но все, что делает, это считает количество записей удвоенным.Что мне нужно изменить в этом запросе?Я надеюсь, что кто-то может мне помочь.