2014-01-12 48 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