如何查找不在主ID表中的ID

时间:2013-03-08 02:05:42

标签: php sql sql-server asp-classic

假设我有一个用于产品的主表,另一个用于保存 ProductID 列表的表。

  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,2。如何使用SQL快速找出无效的ProductID 10,因为它不在主表产品中?

我的程序实际上是经典 ASP (旧版),数据库是MS SQL。我可以在ASP中循环来遍历ListOfProducts中的记录,但是如何使用快速SQL来查找任何无效的ProductID?在这种情况下,当程序循环记录35时,脚本应返回ProductID 10

这看起来很简单。但我想不出一个好的解决方案。可以这样做吗? 请帮忙!

谢谢。

1 个答案:

答案 0 :(得分:1)

您不应将ID存储为逗号分隔列表,这看起来更像是多对多关系。你应该有一个像这样的表:

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

如果你真的必须使用逗号分隔列表,那么你需要创建某种split function