Nie jest to szczególnie trudne.
- Połącz trzy tabele za pomocą klauzuli JOIN.
- Użyj Group_concat w polach, które Cię interesują.
- Nie zapomnij o klauzuli GROUP BY w polach, których nie łączysz lub dziwne coś się wydarzy
SELECT u.id,
u.Name,
Group_concat(us.id_sport order by pref) sport_ids,
Group_concat(s.name order by pref) sport_names
FROM users u
LEFT JOIN User_Sports us
ON u.id = us.id_user
LEFT JOIN sports s
ON US.id_sport = s.id
GROUP BY u.id,
u.Name
Aktualizuj LEWY DOŁĄCZ, gdy użytkownik nie ma wpisów w User_Sports zgodnie z komentarzami