0

我有一张名为“messages”的表格,还有一张名为“votations”的表格。每条消息可以有多个投票,实际上它们被放置在不同的行中的问题。我该如何解决它?

实际查询是:

SELECT messages.ID, votations.value
FROM messages 
LEFT JOIN votations ON messages.ID=votations.messageID

在此处输入图像描述

4

1 回答 1

2

不幸的是,你不能纯粹在 MySQL 中做到这一点。在结果集中,您不能有具有不同(数量)列的行。您需要实现一些应用程序逻辑。你能得到的最接近的是:

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

这将返回此格式:

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

你可以在这里看到这个工作:http ://sqlfiddle.com/#!2/241a8/3

于 2013-07-17T09:05:06.227 回答