我在MySQL中有一個表,我需要連接多行。該表是這樣的:在MySQL中將多行組合成一個沒有組concat
Order_ID | Item_ID | color
1 1 white
1 2 red
2 1 black
2 1 blue
我想要的行結合起來,根據他們在Order_ID這將產生一個結果,看起來像這樣:
Order_ID | Item_1_ID | Item_1_color | Item_2_ID | Item_2_color
1 1 white 2 red
2 1 black 1 blue
我知道,有兩行合併的方式通過使用組concat,但我想這樣做,以便每個字段保持分離,不加入就像使用組concat。
我已經在使用的語句試圖加入太多,這樣的事情:
SELECT o.*, o1.* FROM order o INNER JOIN order o1 ON o.Order_ID = o1.Order_ID
但在少數情況下,我想加入行實在是太多了,超過61的上限在MySQL加入。
任何幫助,將不勝感激,謝謝。
--- ---編輯
有其確定每個訂單的產品的數目這個其他參數稱爲基團。該表是這樣的:
Order_ID | group
1 1
2 1
因此,如果爲了屬於同一組,他們將有相同的列數,但一組,彼此之間的列數可能會有所不同。而我的查詢只是每個組,所以列數之間的差異沒有問題。
你怎麼知道你需要多少列?是否有上限?你是否在生成(?)真實查詢之前計算它? – biziclop 2012-08-05 10:17:34
嗨,我編輯了我的問題。基本上列數是靈活的,但在生成真實查詢之前已經計算出來。據我所知,沒有上限,但不會達到數百或更多。 – raven 2012-08-05 12:48:50
嘗試搜索本網站或互聯網上的'mysql dynamic pivot'。 – 2012-08-05 17:31:58