2011-04-20 38 views
0

我正在跟踪连锁店的杂货价格,并且我在MySQL声明中遇到了问题。MySQL需要加入杂货店,UPC代码和价格表

我的三个表设置像如下: 1)upccode_table,具有两个字段:upc_code,ITEM_NAME

2)storelist_table,具有三个字段:store_code,STORE_NAME,store_address

3)price_table,有四个字段:upc_code,store_code,price_amount,price_date

我需要我的price_table来显示/返回所有可能的组合!这包括所有UPC代码和所有商店名称,以及所有price_amounts,即使为NULL。

我的数据输入将用真实值替换NULL值。

我第一次刺穿这个,但我的语法不正确。

select itemlist.upccode as Code, storetable.storecode as Number 
from code itemlist 
inner join Pricelist p on itemlist.upccode = pricelist.upccode 
inner join storenumber s on storetable.storenumber = pricelist.storenumber 
order by itemlist.upccode 
+1

LEFT JOIN得到即使他们缺少价目表或商店 – 2011-04-20 19:56:12

回答

1

改变内心加盟LEFT OUTER JOIN:

select itemlist.upccode as Code, storetable.storecode as Number 
from code itemlist 
LEFT OUTER join Pricelist p on itemlist.upccode = pricelist.upccode 
LEFT OUTER join storenumber s on storetable.storenumber = pricelist.storenumber 
order by itemlist.upccode 
+0

AJ,感谢您的建议代码。 当我运行该代码时,出现“致命错误:带有消息'SQLSTATE [42S02]的未捕获异常'PDOException':未找到基本表或视图:1146'grocery.code'不存在' in/h ...“ – 2011-04-20 20:36:34

+0

@Paul - 我所做的只是复制你的代码并用'LEFT OUTER'替换'INNER'。我没有看到您的查询(或我的修订版)中列出的“杂货店”表。这听起来像是以前必须存在的框架错误? – 2011-04-20 20:39:23

+0

AJ ......你是对的......我有一个错字....我的“店号”应该是“店号”。非常感谢你 – 2011-04-20 20:41:15