在SQL Server中选择DISTINCT TOP 5

use*_*103 3 sql sql-server-2008

我无法得到这个SQL查询正确...

我想要前5个最新评论tblComment.问题是我得到的评论多一点ProductID.我不希望这样.

SELECT DISTINCT TOP 5
   tblProduct.ProductID, 
   tblProduct.ProductName, 
   tblComment.DateAdded
FROM   
    tblComment 
INNER JOIN 
    tblProduct ON tblProduct.ProductID = tblComment.ProductID
ORDER BY 
    tblComment.DateAdded DESC
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bre*_*dan 6

假设您的评论表有一个id字段,请尝试:

SELECT TOP 5

tblProduct.ProductID, 
tblProduct.ProductName, 
tblComment.DateAdded

FROM   tblComment 
JOIN   tblProduct ON tblProduct.ProductID = tblComment.ProductID
JOIN   (Select ProductID, max(id) as maxid From tblComment Group By ProductId) t on tblComment.id = t.maxid 

ORDER BY tblComment.DateAdded DESC
Run Code Online (Sandbox Code Playgroud)