Du måste ange en DISTINCT
, dvs.
select users.name, group_concat( DISTINCT programs.name)
Se MySQL-dokumenten här .
Prova att ändra din fråga till:
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
Detta ger dig en null
för alla användare utan program kopplade till dem. För att filtrera bort dem, lägg bara till en WHERE programs.id IS NOT NULL
.