Bạn cần chỉ định một DISTINCT
, tức là
select users.name, group_concat( DISTINCT programs.name)
Xem tài liệu MySQL tại đây .
Hãy thử thay đổi truy vấn của bạn thành:
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
Điều này sẽ cung cấp cho bạn một null
cho bất kỳ người dùng nào không có chương trình nào được liên kết với họ. Để lọc chúng ra, chỉ cần thêm WHERE programs.id IS NOT NULL
.