В следующем запросе я собираю список претендентов на конкретную работу. Независимо от того, что я GROUP BY, он либо дает мне одного и того же пользователя, но с каждой другой информацией приложения, или я получаю 4 строки, возвращенные для каждого.GROUP BY, что приводит к нежелательным результатам
Я только начал заниматься реляционным дизайном базы данных, поэтому я предполагаю, что это неправильно. Я расстался с претендентами и приложениями, и теперь я борюсь с группировкой данных. Если мне просто нужен подзапрос, group_concat, или я просто использую GROUP BY неправильно?
SELECT
applicants.*, applications.*, users.*
FROM applicants
INNER JOIN applications ON applicants.job_id = applications.job_id
INNER JOIN users ON applicants.user_id = users.user_id
WHERE
applicants.job_id = 56 AND applicants.process_level = 1
GROUP BY applications.app_id
Таблица: Заявители
+-----+--------+---------+--------+--------------------+---------------+
| id | job_id | user_id | app_id | applied_on | process_level |
+-----+--------+---------+--------+--------------------+---------------+
| 1 | 56 | 125 | 5 |2015-05-24 19:28:55 | 1 |
| 2 | 22 | 15 | 6 |2015-05-25 16:38:24 | 2 |
| 3 | 56 | 100 | 7 |2015-05-26 13:38:24 | 1 |
+-----+--------+---------+--------+--------------------+---------------+
Таблица: приложения
+---------+--------+---------+--------------+-------------+
| app_id | job_id | user_id | experience | location |
+---------+--------+---------+--------------+-------------+
| 5 | 56 | 125 | bibendum jus | suscipi |
| 6 | 22 | 15 | Morbi vitae | aliquet |
| 7 | 56 | 100 | Duis et ex a | convallis |
+---------+--------+---------+--------------+-------------+
Таблица: пользователи
+---------+-----------------+------------+-----------+
| user_id | user_email | first_name | last_name |
+---------+-----------------+------------+-----------+
| 15 | [email protected] | Joe | Shcomo |
| 100 | [email protected] | Sally | Smith |
| 125 | [email protected] | John | Doe |
+---------+-----------------+------------+-----------+
желаемого результата: например, Я хочу одну строку для пользователя 125, где job_id - 56, со всеми их данными от заявителя, приложений и пользователя. (не все данные, представленные конечно):
+---------+------------+-----------+---------------+---------------------+
| user_id | first_name | location | process_level | applied_on |
+---------+------------+-----------+---------------+---------------------+
| 125 | John | suscipi | 1 | 2015-05-24 19:28:55 |
| 100 | Sally | convallis | 1 | 2015-05-26 13:38:24 |
+---------+------------+-----------+---------------+---------------------+
Возможно, вам вообще не нужна группа. –
'Заявители. *, Приложения. *, Пользователи. *', Что не подходит для 'GROUP BY', и поскольку вы не запрашиваете каких-либо суммарных значений, вам не нужна группировка –
Возможно, я пропустил это, но Я не уверен, что вы действительно говорите, что вы пытаетесь сделать. –