Mysql
 sql >> Base de données >  >> RDS >> Mysql

Jointure de table plusieurs à plusieurs avec pivot

Vous devez spécifier un DISTINCT , c'est-à-dire

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

Consultez la documentation MySQL ici .

Essayez de modifier votre requête en :

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

Cela vous donnera un null pour tout utilisateur sans programme associé. Pour les filtrer, ajoutez simplement un WHERE programs.id IS NOT NULL .