Mysql
 sql >> Database >  >> RDS >> Mysql

Unisciti a molti a molti con Pivot

Devi specificare un DISTINCT , cioè

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

Consulta i documenti MySQL qui .

Prova a modificare la tua query in:

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

Questo ti darà un null per qualsiasi utente senza programmi associati. Per filtrarli, aggiungi un WHERE programs.id IS NOT NULL .