2011-03-21 38 views
0

我有一個產品目錄,
產品表(tblProducts : ProductID)
產品類別表(tblProductCategories : CatID)
產品子類別表(tblProductSubCategories : SubCatID),並且
一外部參照表(tblProdXCat : ProductID,CatID,SubCatID)
將產品鏈接到貓和子目錄。
產品可以鏈接到多個貓和/或子郵件。
我該如何查詢並獲取不同的產品(結果集中沒有重複的產品)?
請Microsoft SQL Server。如何使用「獨立的」正常我的產品查詢

謝謝!

+1

你想要返回哪些列? – 2011-03-21 19:45:52

+0

構成獨特產品的是什麼?產品A,產品A,產品A的子類別A DISTINCT,產品A,產品A,產品B的子類別B,或者您只需要「產品A,產品B」等。如果是後者,是否需要返回類別和子類別,如果是這樣,是否與產品返回哪個類別/子類別有關係? – ThatSteveGuy 2011-03-21 19:55:14

回答

0
select distinct productID from tblProducts 
0

將所有加入歧義置於WHERE子句中。

SELECT * 
FROM Products 
WHERE ProductID in 
(
    SELECT ProductId 
    FROM Products JOIN ... 
) 
1

我假設你tblProducts表是不同的產品的表,這樣你就不會問如何選擇不同的產品,從那裏。

如果您的意思是如何從tblProdXCat獲得不同的產品,那麼它可能就像SELECT DISTINCT ProductID FROM tblProdXCat一樣簡單。

但也許你想要一個完整的產品信息,而不是簡單的他們的ID。在這種情況下,你可以只INNER JOIN不同ProductID值列表對tblProducts

SELECT p.* 
FROM Products p 
    INNER JOIN (SELECT DISTINCT ProductID FROM tblProdXCat) x 
    ON p.ProductID = x.ProductID 

如果這還不夠,你想要的東西,那麼你可能需要澄清您的要求。