我有一个名为“消息”的表,另一个叫做“投票”。每条消息可以有多个投票,问题实际上它们放在不同的行中。我该如何修复它?
实际查询是:
SELECT messages.ID, votations.value
FROM messages
LEFT JOIN votations ON messages.ID=votations.messageID
答案 0 :(得分: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