0

Productsのマスター テーブルと、 ProductIDsのリストを保持する別のテーブルがあるとします。

  Table name: Products  
 --------------------
 ProductID, Title, Price  
       1, Title 1, 12.00  
       2, Title 2, 15.00  
       4, Title 4, 11.50  
       8, Title 8, 13.89  
       11, Title 11, 12.00  

     Table name: ListOfProducts  
      --------------------------
       SomeID, ProductIDs  

         34, 4,8,1  
         35, 8,10,2  

ListOfProductsこれで、表の 、 のレコードSomeID=35、製品のリストが であることがわかります8,10,2ProductID 10マスターテーブル Products にないため、SQL を使用して無効な をすばやく見つけるにはどうすればよいですか?

私のプログラムは実際には従来のASP (レガシー) であり、データベースは MS SQL です。のレコードを反復処理するために ASP でループを実行できますがListOfProducts、クイック SQL を使用して無効な を見つけるにはどうすればよいProductIDでしょうか。この場合、プログラムが を記録するためにループするとき35、スクリプトは を返す必要がありProductID 10ます。

これは本当に簡単に見えます。しかし、私は良い解決策を思いつきませんでした。これはできますか?助けてください!

ありがとうございました。

4

1 に答える 1

1

IDをコンマ区切りのリストとして保存しないでください。これは、多対多の関係のように見えます。次のようなテーブルが必要です。

SomeID | ProductID
-------------------
34     | 4
34     | 8
34     | 1
35     | 8
35     | 10
35     | 2

本当にコンマ区切りのリストを使用する必要がある場合は、ある種の分割関数を作成する必要があります

于 2013-03-08T02:10:42.997 に答える