假设我有Product和RelatedProduct表,
Product
------
ID
Name
RelatedProduct
--------------
ID
ProductID
RelatedProductID
RelatedProductName
现在我是一个@ProductID参数。我需要获取所有尚未在RelatedProduct表中添加的产品。所以,如果我有
Product
-----------
ID Name
1 A1
2 A2
3 A3
4 A4
RelatedProduct
-----------------------------------------
ID Name ProductID RelatedProductID
1 B1 2 1
2 B2 4 3
3 B3 2 4
如果@ProductID = 1,那么我需要产品2,3,4。如果@ProductID = 2,那么我需要Product's 3.如果@ProductID = 4,那么我需要Product's 1,2。
答案 0 :(得分:1)
select *
from Product
where id not in
(select RelatedProductID
from RelatedProduct
where productID = @productID)
注意:如果产品1与产品2相关,那么产品2是否与产品1相关?你的例子明确地说不,但这种关系往往是双向的。