2014-01-12 49 views
1

我試圖從多個表中選擇2個相同的項目。這裏是我的數據運行。MySQL從多個表中選擇2個項目

項目

Item ID Item name 
1   Item1 
2   Item2 
3   Item3 
4   Item4 

項目對

Item ID 1 Item ID 2 
4   1 
4   3 
3   1 
4   2 

對是通過外鍵鏈接。

我需要做的是根據項目對ID選擇2個項目名稱。我只能用下面的查詢選擇其中的一個,但一直不能選擇更多。

SELECT item_name FROM items, item_pairs WHERE item_pairs.item_id_1 = item.item_id 

非常感謝提前

回答

2

重新加入項目表

SELECT 
    i.item_name, 
    i2.item_name 
FROM 
    items i 
    JOIN item_pairs ip 
    ON ip.item_id_1 = i.item_id 
    JOIN items i2 
    ON ip.item_id_2 = i2.item_id 
GROUP BY ip.item_id_1, 
    ip.item_id_2 
+1

非常感謝您,這工作完美!我將ip.item_pair_id添加到GROUP BY,以便它按付款ID的順序列出。非常感謝! – Linkandzelda

-1

您似乎忘記真正選擇第二個表的列...

SELECT item_name, item_id_2 FROM items, item_pairs WHERE item_pairs.item_id_1 = item.item_id</strike> 

OK,我現在給你...你需要添加到年底你當前的查詢帶有一個HAVING參數......類似於HAVING items.item_id 4或任何你想要選擇的東西。

+0

的OP是問他怎麼從第一個表中的兩對項目名稱試試這個。這是正確的,但不回答問題 – unekwu

+0

我想我還是不理解。 :( –

+0

這個查詢的問題是item_name是items表中的一個字段,但是item_id_2沒有。我需要根據item_pairs表中的2個item_id獲取2個item_name。 – Linkandzelda