2013-12-20 105 views
1

我有3個表,我想使用樞軸/交叉表連接所有3個表。 讓我給你表的結構。使用JOIN查詢的Mysql數據透視表/交叉表查詢

  1. 表名:wp_frm_item

    id  post_id  user_id  name 
    
    121  19241   3   balaji 
    
    120  19239   3   bajaj 
    
    119  19235   3   pressur Cooker 
    
  2. 表名:wp_postmeta

    post_id  meta_key  meta_value 
    
        19241   Price:   590 
    
        19241   Shipping:  20 
    
        19241   Size:   250X20 
    
        19239   price   8412 
    
        19239   Shipping:  20 
    
  3. 表名:wp_frm_item_meta

    item_id  field_id  meta_value 
    
        121    96   happy 
    
        121    388   a:3 
    
        121    237   sell 
    
        120    96   no I'm sad 
    
        120    388   a:4 
    
        120    237   swap 
    

    我想輸出完全一樣如下:

    post_id item_id user_id name price shipping size  96  388 237 
    
    
    19241  121  3  balaji 590  20  250X20 happy a:3 sell 
    

    請協助執行此查詢,並感謝你在先進的這麼多閱讀我的文章。

+0

有很多答案顯示如何轉動MySQL表。你的問題有什麼不同,所以你不能使用這些答案之一? – Barmar

+0

是的,親愛的我知道這裏有很多答案,但我仍然堅持與其他表加入。如果你有鏈接可用相同的問題,請粘貼在這裏,這可能對我有所幫助 –

+0

這是一個類似的我幾天前回答:http://stackoverflow.com/questions/20623866/join-tables-listing-rows- as-columns-joined-to-another-table/20626119#20626119 – Barmar

回答

0

感謝您的幫助Barmar。

解決方法就在這裏。

SELECT i.post_id, 
     i.name post_name, 
     i.user_id, 
     MAX(IF(p.meta_key = "Shipping:",p.meta_value, NULL)) shipping, 
     MAX(IF(p.meta_key = "Price:", p.meta_value, NULL)) price, 
     MAX(IF(p.meta_key = "Size:", p.meta_value, NULL)) size, 
     MAX(IF(p.meta_key = "_wp_attached_file", p.meta_value, NULL)) wp_attached_file 
FROM wp_frm_items i 
JOIN wp_postmeta p ON i.post_id = p.post_id 
where i.post_id = 19241 
GROUP BY i.post_id 

Demo

+0

請注意,CASE符合SQL標準 – Strawberry