0

ユーザーがボックス内で受け取った製品をバックログするシステムがあります。システム全体は、製品を内部に使用して作成したこれらのキットに基づいています。

それで、私が持っているすべてをリストするCustomersandを取得しました。Productsそして、どの顧客がどのボックスを受け取ったかを示すフィールドとフィールドBoxesを持つテーブルがあります。ProductID1, ProductID2, ProductID3 and ProductID4CustomerID

私がやりたいことは、同じ順序ではない一連の製品が与えられた場合(例: ID4, ID2, ID3, ID1)、この特定のセットの製品を受け取っていないすべての顧客を知る必要があることです。

私のデータベースは設計が悪いのでしょうか? これを行う最善の方法またはSELECTクエリの作成方法は何ですか

4

1 に答える 1

1

次のようにやりたいことができます:

where id4 not in (productid1, productid2, productid3, productid4) or
      id2 not in (productid1, productid2, productid3, productid4) or
      id3 not in (productid1, productid2, productid3, productid4) or
      id1 not in (productid1, productid2, productid3, productid4)

aと aBoxesrProductsを持つような名前のテーブルが必要です。そうすれば、必要に応じて、ボックスにさまざまなサイズ (4 つの製品を超えても) を設定できます。BoxesIdProductId

于 2013-04-02T21:21:43.953 に答える