2011-04-20 36 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