DISTINCT
を指定する必要があります 、つまり
select users.name, group_concat( DISTINCT programs.name)
MySQLドキュメント
クエリを次のように変更してみてください:
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
これにより、null
が得られます プログラムが関連付けられていないユーザーの場合。それらを除外するには、WHERE programs.id IS NOT NULL
を追加するだけです。 。