「メッセージ」と呼ばれるテーブルと「投票」と呼ばれる別のテーブルがあります。各メッセージは複数の投票を持つことができます, 実際にはそれらが異なる行に配置されるという問題.どうすれば修正できますか?
実際のクエリは次のとおりです。
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