假设我有一个用于产品的主表,另一个用于保存 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
。
这看起来很简单。但我想不出一个好的解决方案。可以这样做吗? 请帮忙!
谢谢。
答案 0 :(得分:1)
您不应将ID存储为逗号分隔列表,这看起来更像是多对多关系。你应该有一个像这样的表:
SomeID | ProductID
-------------------
34 | 4
34 | 8
34 | 1
35 | 8
35 | 10
35 | 2
如果你真的必须使用逗号分隔列表,那么你需要创建某种split function