Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Duas mesas, com relacionamento um para muitos. Como unir valores sem linhas duplicadas?


Infelizmente você não pode fazer isso puramente no MySQL. No conjunto de resultados você não pode ter linhas com (número de) colunas diferentes. Você precisa de alguma lógica de aplicativo implementada. O mais próximo que você pode chegar disso é:
select m.id, GROUP_CONCAT(voto SEPARATOR ',') 
from messages m 
left join votations v on v.messageID = m.id
group by m.id;

Isso retornará este formato:
ID  GROUP_CONCAT(VOTO SEPARATOR ',')
1   2,5,6
2   2,12,3

Você pode ver isso funcionando aqui:http://sqlfiddle.com/#!2/241a8/ 3