2013-07-24 62 views
0

我們有我們繼承像這樣的表結構:MySQL列;一分爲二的結果集

--------------------------------------------- 
option_id  title option_type_id(FK) 
--------------------------------------------- 
1    Option1    1 
2    Option2    1 
3    Option3    2 
4    Option4    2 
5    Option5    3 

上表是一組「選項」可以在系統中。

--------------------------------------------- 
map_id  item_id   option_id(FK) 
--------------------------------------------- 
    1    16378    1 
    2    16378    4 
    3    87680    2 
    4    87680    3 
    5    87680    5 

底部表有一個到頂部表的外鍵鏈接,它映射出每個項目附加的所有「選項」。

的問題是,我們非常想顯示每個選項的數據集拆分,就像這樣:

----------------------------------------------- 
item_id  option_type_1  option_type2 
----------------------------------------------- 
    87680   Option2   Option3 

誰能幫助?我試過INNER JOIN和LEFT OUTER JOIN,但是沒有任何東西可以完全覆蓋所有的可能性。在這種情況下,我們只關心結果集的option_types 1和2。

+1

你想要的是一個支點查詢,其中MySQL不支持。解決方法變得非常非常非常非常快,因爲您希望自動創建更多列,並且解決方法無法動態調整爲更多/更少的列。這在您的客戶端應用程序中更好。 –

回答

0

,如果你感興趣的是,選項1個&選項2則:

select item_id, o1.title, o2.title 
from itemtable as IT 
left join optiontable as O1 on it.option_id = o1.option_id and option_type_id = 1 
left join optiontable as O2 on it.option_id = o1.option_id and option_type_id = 2