2012-03-19 29 views
0

我正在創建購物車,並遇到一個問題:如果某人訂購某個項目,我需要將該項目從打印的MySQL DB項目列表中隱藏(存儲在表items中)物品已被購買。 (如果其他用戶不能將此項添加到購物車,如果有人已經這樣做了,併購買了它。)購買的項目存儲在其他MySQL表orders。所以不知何故需要比較這兩個表格,並從訂購的商品清單中過濾這些項目。任何建議?比較兩個數據庫表並隱藏現有項目

回答

0

你可以做這樣的事情:

SELECT * FROM items WHERE item_id NOT IN (SELECT item_id FROM orders); 
0

滑稽模仿的答案,使用子查詢是好的。另一種方法是使用連接:

SELECT items.* FROM items 
LEFT OUTER JOIN orders 
ON items.item_id = orders.item_id 
WHERE orders.item_id IS NULL -- only those which had no join 
0

您的結構可能需要修訂。庫存系統通常構造的方式是存在具有數量(int類型)列的項目表。此欄應包含可用庫存量。您應該填寫該號碼以符合您的庫存。如果有人購買這個物品,你應該扣除他們購買的金額。通過這種方式,您不必爲存貨中的每件商品創建一個新行。在您的用戶界面中,您應該顯示庫存中的庫存。 (數量欄大於0的項目)

+0

我同意這一點。這種方式似乎更加靈活,所以你不必因爲你有兩個相同的確切項目而在你的'items'表中有兩個條目。 – Travesty3 2012-03-19 13:47:26