如果我有如下一些記錄表格:試圖重新調整MySQL查詢 - 任何人有一些想法?
id reference_id message
-- --------- -------
1 42 Foo
2 42 Bar
3 42 Two
我可以用一個簡單的MySQL查詢到所有具有相同REFERENCE_ID行結合?我想收集所有具有相同REFERENCE_ID值的行的同一行/列,實現類似:
message1 message2 message3
-------- -------- --------
Foo Bar Two
從相關計算器後下面的代碼似乎是一個可行的解決方案,但它適用於組合僅兩行。
SELECT a.message AS message1,
b.message AS message2
FROM messages a
INNER JOIN messages b ON a.parent_id=b.parent_id
WHERE a.id<b.id;
我試圖重新調整上述查詢來組合三行或更多行,但迄今爲止我還沒有成功。 有誰知道一個MySQL查詢做我想要的,或者,如何重新調整上面的代碼來做我以後的事情?我應該溝通MySQL來解決這個問題嗎?
這也被稱爲'PIVOT'操作。如果結果中有動態數量的列,則需要動態查詢;因爲SQL查詢的輸出'形狀'必須是固定的。在很多情況下,可以避免這種樞軸操作(可以將其看作非規範化的一種形式),特別是在與其他數據連接或通過代碼使用查詢時。 – user2864740
當不是所有參考ID都具有相同數量的消息時,您期望的行爲是什麼? –