Не е особено трудно.
- Свържете трите таблици с помощта на клаузата JOIN.
- Използвайте Group_concat за полетата, които ви интересуват.
- Не забравяйте клаузата GROUP BY в полетата, които не обединявате или странно нещата ще се случат
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
Актуализиране LEFT JOIN за когато потребителят няма записи в User_Sports според коментари