sql >> Databasteknik >  >> RDS >> Mysql

Två bord, med ett till många förhållande. Hur sammanfogar man värden utan dubbletter av rader?

Tyvärr kan du inte göra detta enbart i MySQL. I resultatuppsättningen kan du inte ha rader med olika (antal) kolumner. Du behöver implementera lite applikationslogik. Det närmaste du kan komma detta är:

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

Detta kommer att returnera detta format:

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

Du kan se detta fungera här:http://sqlfiddle.com/#!2/241a8/ 3




  1. MySQL GROUP BY datum när du använder datetime

  2. Hur kan jag slå samman två MySQL-tabeller?

  3. Hur beräknar man diskutrymmet som används av MySQL-tabellen från kolumndatatyper och antal rader?

  4. Fråga för att hitta och ta bort dubbletter av data från MYSql-tabellen