我如何正确地为我的产品查询使用'distinct'

时间:2011-03-21 19:40:26

标签: sql sql-server

我有一个产品目录  产品表(tblProducts : ProductID)
 产品类别表(tblProductCategories : CatID)
 产品子类别表(tblProductSubCategories : SubCatID)
 外部参照表(tblProdXCat : ProductID,CatID,SubCatID)
将产品链接到猫和子目录 产品可以链接到多个猫和/或子类 如何仅查询和获取不同的产品(结果集中没有产品重复)? 请使用Microsoft SQL Server。

谢谢!

3 个答案:

答案 0 :(得分:1)

我认为您的tblProducts表格是不同产品的表格,因此您不会询问如何从中选择不同的产品。

如果您的意思是如何从tblProdXCat获取不同的产品,那么它可能就像SELECT DISTINCT ProductID FROM tblProdXCat一样简单。

但也许你想要一个关于产品的完整信息,而不仅仅是他们的ID。在这种情况下,您可以在内部加入针对ProductID的不同tblProducts值列表:

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

如果仍然不是您想要的,那么您可能需要澄清您的请求。

答案 1 :(得分:0)

select distinct productID from tblProducts

答案 2 :(得分:0)

将所有加入歧义放入WHERE子句中。

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