Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Viele-zu-viele-Tabellen verbinden sich mit Pivot

Sie müssen einen DISTINCT angeben , also

select users.name, group_concat( DISTINCT programs.name)

Siehe die MySQL-Dokumentation hier .

Versuchen Sie, Ihre Abfrage zu ändern:

SELECT users.name, group_concat(programs.name) 
from users
LEFT JOIN linker on linker.user_id = users.id
LEFT JOIN programs on linker.program_id = programs.id
GROUP BY users.id

Dadurch erhalten Sie eine null für jeden Benutzer, dem keine Programme zugeordnet sind. Um sie herauszufiltern, fügen Sie einfach ein WHERE programs.id IS NOT NULL hinzu .