sql >> Base de Datos >  >> RDS >> Mysql

Dos tablas, con una relación de uno a muchos. ¿Cómo unir valores sin filas duplicadas?

Desafortunadamente no puedes hacer esto puramente en MySQL. En el conjunto de resultados no puede tener filas con diferentes (número de) columnas. Necesita implementar alguna lógica de aplicación. Lo más cerca que puedes llegar a esto es:

select m.id, GROUP_CONCAT(voto SEPARATOR ',') 
from messages m 
left join votations v on v.messageID = m.id
group by m.id;

Esto devolverá este formato:

ID  GROUP_CONCAT(VOTO SEPARATOR ',')
1   2,5,6
2   2,12,3

Puede ver esto funcionando aquí:http://sqlfiddle.com/#!2/241a8/ 3