2013-03-27 99 views
0

比方說,我有產品和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,那麼我需要Product的2,3,4。如果@ProductID = 2,那麼我需要Product's 3.如果@ProductID = 4,那麼我需要Product的1,2。

+0

這些表格是如何相互關聯的? – 2013-03-27 11:39:44

+0

@JW,只是相關產品。產品ID和RelatedProduct.RelatedProductID總是屬於Product.ID – user960567 2013-03-27 11:42:05

回答

1
select * 
from Product 
where id not in 
    (select RelatedProductID 
    from RelatedProduct 
    where productID = @productID) 

注:如果產品1與產品2有關,產品2是否也與產品1有關?你的例子明確地說不,但通常這種關係是雙向的。

+0

我測試謝謝,但我認爲你失去了聯盟選擇@productID – user960567 2013-03-27 11:48:43

相關問題