Thật không may, bạn không thể làm điều này hoàn toàn trong MySQL. Trong tập kết quả, bạn không thể có các hàng với (số) cột khác nhau. Bạn cần thực hiện một số logic ứng dụng. Cách gần nhất mà bạn có thể đạt được là:
select m.id, GROUP_CONCAT(voto SEPARATOR ',')
from messages m
left join votations v on v.messageID = m.id
group by m.id;
Thao tác này sẽ trả về định dạng sau:
ID GROUP_CONCAT(VOTO SEPARATOR ',')
1 2,5,6
2 2,12,3
Bạn có thể thấy điều này đang hoạt động tại đây: http://sqlfiddle.com/#!2/241a8/ 3