根据我的问题标题,所以我有这样的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 我不知道选择产品的方式有多个分类。因为当我使用 In 运算符时,我收到了一些错误..
Select * from product where categories In (categodyid) because cannot compare a collection with one value.
我被困在这里!请帮我!谢谢。
答案 0 :(得分:1)
这是一个经典的亲子一对多关系。您需要一个[ProductCategory]
表来将给定产品与多个类别相关联:
productid categoryid
1 1
1 2
1 3
2 3
3 1
3 2
答案 1 :(得分:1)
首先,您的表格未规范化。查看“产品表”中的“类别”列。每个单元格应该只有一个值。通过允许多个值,您可能面临各种问题,包括更新/插入异常以及您现在看到的内容。你也很难做出选择和其他操作。相反,请考虑使用此示例规范化表格:
<强>分类强>
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
第三个表用作补救多对多模式的方法。如果您对如何操作或如何使用它有任何疑问,请告诉我