У меня есть три таблицы "имена", "группа", "задача"запроса MySQL с использованием соединения и GROUP_CONCAT
"имена"
| nid | name |
| 1 | John |
| 2 | Jim |
| 3 | Jerry |
"группа"
| gid | nid |
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
| 2 | 3 |
«задачи "
| tid | gid |
| 1 | 2 |
| 2 | 1 |
Я хочу получить список имен, которые принадлежат к задаче, как это:
| tid | names |
| 1 | Jim,Jerry |
| 2 | John,Jim |
Я успешно попробовал:
SELECT t.tid,n.name
FROM tasks t
LEFT JOIN groups g ON g.gid=t.gid
LEFT JOIN names n ON n.nid=g.nid
Это работает до сих пор, но имена в отдельных выходов, так что я пытался использовать GROUP_CONCAT()
, но это не работает , Я просто получаю первую задачу с неправильными именами!?!?
SELECT t.tid,GROUP_CONCAT(n.name)
FROM tasks t
LEFT JOIN groups g ON g.gid=t.gid
LEFT JOIN names n ON n.nid=g.nid
Я раньше не использовал GROUP_CONCAT()
. Он работает хорошо, если использовать его в одном SELECT
без соединений. Короче говоря, что я сделал не так, было бы хорошо.
Добавить 'group by t.tid' в конце. –
Но whhhyyyyyy? :-( – Strawberry