Anda perlu menentukan DISTINCT
, yaitu
select users.name, group_concat( DISTINCT programs.name)
Lihat dokumen MySQL di sini .
Coba ubah kueri Anda menjadi:
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
Ini akan memberi Anda null
untuk setiap pengguna tanpa program yang terkait dengannya. Untuk menyaringnya, cukup tambahkan WHERE programs.id IS NOT NULL
.