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

カテゴリ ID が 1 の場合、複数のカテゴリを持つ製品を選択する方法がわかりません。In演算子を使用すると、エラーが発生するため..

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

私はここで立ち往生しています!私を助けてください!ありがとう。

4

2 に答える 2

1

まず、テーブルが正規化されていません。Product テーブルの Categories 列を見てください。各セルには値が 1 つだけある必要があります。複数の値を許可すると、更新/挿入の異常や現在表示されているものなど、さまざまな問題が発生する危険があります。また、選択やその他の操作を行うのが非常に難しくなります。代わりに、次の例を使用してテーブルを正規化することを検討してください。

カテゴリー

categoryid   categoryname
1            one
2            two
3            three

製品

ProdductId   ProductName
4            prod1
5            prod2
6            prod 3

カテゴリ_製品

CategoryId   ProductId
1            3
1            4
2            3

3 番目の表は、多対多のパターンを修正する方法として機能します。これを行う方法または使用方法について質問がある場合は、お知らせください

于 2013-04-05T10:39:06.620 に答える