2013-04-05 54 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