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

Deux tables, avec une relation un à plusieurs. Comment joindre des valeurs sans lignes en double ?

Malheureusement, vous ne pouvez pas le faire uniquement dans MySQL. Dans le jeu de résultats, vous ne pouvez pas avoir de lignes avec différents (nombre de) colonnes. Vous avez besoin d'une logique d'application implémentée. Le plus proche que vous puissiez obtenir est :

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

Cela renverra ce format :

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

Vous pouvez voir cela fonctionner ici :http://sqlfiddle.com/#!2/241a8/ 3