我有一张名为“messages”的表格,还有一张名为“votations”的表格。每条消息可以有多个投票,实际上它们被放置在不同的行中的问题。我该如何解决它?
实际查询是:
SELECT messages.ID, votations.value
FROM messages
LEFT JOIN votations ON messages.ID=votations.messageID
不幸的是,你不能纯粹在 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