Я создаю небольшой сайт для трудоустройства и задаюсь вопросом, возможно ли это в MySQL: у меня есть 3 образца рабочих мест, и я хочу показать всем пользователям, которые обратились к job_id = 1
, которые имеют статус приложения 'pending'
, показывая общее количество других 'pending'
и 'pending' + 'hired'
приложений, которые есть у каждого пользователя.MySQL: подсчет экземпляров во многих таблицах
Я пытался обнять голову, но у меня проблемы. Это что-то может сделать MySQL?
users
+----+-------+
| ID | name |
+----+-------+
| 1 | hanna |
| 2 | bob |
| 3 | rick |
+----+-------+
job
+--------+------------+
| job_id | jobname |
+--------+------------+
| 1 | 'waiter'|
| 2 | 'janitor'|
| 3 | 'cook'|
+--------+------------+
applications
+----------+---------+-----------+
| user_id | job_id | status |
+----------+---------+-----------+
| 1 | 1 | 'pending' |
| 1 | 2 | 'pending' |
| 1 | 3 | ' hired' |
| 2 | 1 | 'pending' |
| 3 | 1 | 'removed' |
+----------+---------+-----------+
Мой набор результатов
+--------+---------+-----------+---------------+--------------------+
| job_id | user_id | status | count_pending | count_pendinghired |
+--------+---------+-----------+---------------+--------------------+
| 1 | 1 | 'pending' | 2 | 3 |
| 1 | 2 | 'pending' | 1 | 1 |
+--------+---------+-----------+---------------+--------------------+
Хммм, я изменил последнюю часть на 'GROUP BY user_id HAVING status = 'pending' AND job_id = 1', который получил данные, которые я ожидал. Но можете ли вы подтвердить, что это правильно, или я буду сталкиваться с проблемами для конкретных случаев в будущем? – enchance
@enchance Если вы добавите такой пункт 'HAVING', то вы не сможете подсчитать тех пользователей, которые были наняты. Это то, что вы хотите? –
Это странно, это на самом деле все еще работает на моем конце ... – enchance