2013-04-05 112 views
2

選擇產品根據我的問題的稱號,所以我有結構Access數據庫是這樣的:如何與多個類別

類別

categoryid categoryname 
1   one 
2   two 
3   three 

產品表:

productid productname categories 
1   one   1,2,3 
2   two   3 
3   three   1,2 

當我有CATEGORYID是1我不知道選擇產品的方式有多個分類。因爲當我使用運營商,我得到了一些錯誤..

Select * from product where categories In (categodyid) because cannot compare a collection with one value. 

卻困在這裏!請幫幫我!謝謝。

回答

1

首先,你的表是不歸。查看Product Table中的Categories列。每個單元應該只有一個值。通過允許多個值,你可能的各種問題,包括更新/插入異常和你現在所看到的。你也很難做選擇和其他操作。相反,想想這個例子正常化你的表:

類別

categoryid categoryname 
1   one 
2   two 
3   three 

產品

ProdductId ProductName 
4   prod1 
5   prod2 
6   prod 3 

Category_Prod

CategoryId ProductId 
1   3 
1   4 
2   3 

第三個表充當辦法補救多對多圖案。如果您有關於如何做到這一點任何疑問或如何使用它,讓我知道

1

這是一個經典的親子一個一對多的關係。你需要一個[ProductCategory]表給定的產品與多個類別關聯:

productid categoryid 
1   1 
1   2 
1   3 
2   3 
3   1 
3   2 
+0

OH。非常感謝您的回覆!\ – vietvoquoc 2013-04-05 10:39:03