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

Due tavoli, con rapporto uno a molti. Come unire valori senza righe duplicate?

Sfortunatamente non puoi farlo esclusivamente in MySQL. Nel set di risultati non puoi avere righe con (numero di) colonne diverse. È necessaria l'implementazione della logica dell'applicazione. Il più vicino che puoi raggiungere è:

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

Questo restituirà questo formato:

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

Puoi vederlo funzionare qui:http://sqlfiddle.com/#!2/241a8/ 3