我是SQL的新手,我遇到的问题是我认为这是一个简单易用的SQL连接语句。
我有一个“库存”和一个“商品”表。 “inventory”表包含user_id,item_id和qty。 “items”表包含item_id和item_name。
我希望用户使用其user_id获取“inventory”表中列出的所有库存项目的列表,然后在每行中显示与“inventory”中的item_id相关联的“items”表中的item_name表...
它似乎应该非常简单,但我的所有查询似乎都返回“items”表中的每个项目,而不是“inventory”表中的每个项目。有人能给我一个我应该使用的SQL查询的例子吗?
答案 0 :(得分:1)
select i.user_id, i.item_id, i.qty, it.item_name
from inventory i
inner join items it on i.item_id = it.item_id
where i.user_id = 42
<强>更新强>
如果无法保证items
表中有匹配的记录,您可能需要使用左外连接,如下所示:
select i.user_id, i.item_id, i.qty, it.item_name
from inventory i
left outer join items it on i.item_id = it.item_id
where i.user_id = 42
答案 1 :(得分:0)
在这里,试试这个:
select inventory.user_id, items.item_name
from inventory
inner join items on inventory.item_id = items.item_id
where inventory.user_id = `$some_user_id`;
答案 2 :(得分:0)
SELECT inventory.*, items.* FROM inventory, items WHERE inventory.user_id='$userid' AND inventory.item_id = items.item_id