Es ist nicht besonders schwierig.
- Fügen Sie die drei Tabellen mit der JOIN-Klausel zusammen.
- Verwenden Sie Group_concat für die Felder, die Sie interessieren.
- Vergessen Sie nicht die GROUP BY-Klausel für die Felder, die Sie nicht verketten oder seltsam sind Dinge werden passieren
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
Aktualisieren LEFT JOIN, wenn der Benutzer laut Kommentaren keine Einträge in User_Sports hat