У меня есть три таблицы:
users: sports: user_sports:
id | name id | name id_user | id_sport | pref
---+-------- ---+------------ --------+----------+------
1 | Peter 1 | Tennis 1 | 1 | 0
2 | Alice 2 | Football 1 | 2 | 1
3 | Bob 3 | Basketball 2 | 3 | 0
3 | 1 | 2
3 | 3 | 1
3 | 2 | 0
Таблица user_sports
связывает пользователей
и спорт
с порядком предпочтения (pref
).
Мне нужно сделать запрос, который вернет следующее:
id | name | sport_ids | sport_names
---+-------+-----------+----------------------------
1 | Peter | 1,2 | Tennis,Football
2 | Alice | 3 | Basketball
3 | Bob | 2,3,1 | Football,Basketball,Tennis
Я пытался использовать JOIN
и GROUP_CONCAT
, но получаю странные результаты.
Нужно ли делать вложенный запрос?
Есть идеи?