实现MOST最近的评论 - SQL Server

时间:2009-10-11 02:51:30

标签: sql-server greatest-n-per-group

假设我有一堆博客条目,我想在每个条目中找到最新的评论,我将如何在SQL Server中找到它。

我在临时表中有这些博客条目的整数id列表。像这样选择top 1的东西在这种情况下不起作用。

我想到的方法是循环,我们都知道有多少人喜欢在SQL Server中避免循环。

2 个答案:

答案 0 :(得分:3)

您可以在SELECT语句中使用子查询。类似的东西:

SELECT  post.id, 
        most_recent_comment_id = 
            (SELECT TOP 1 comment.id 
             FROM comment 
             WHERE comment.post_id = post.id
             ORDER BY comment.date DESC)
FROM posts
ORDER BY posts.date

或类似的东西。

答案 1 :(得分:1)

嗯,这是一种方式:

SELECT c.*
FROM BlogComments c
JOIN #TempEntries t ON c.EntryID = t.EntryID
JOIN (
    SELECT m.EntryID, MAX(m.CommentID) AS CommentID
    FROM BlogComments m
    GROUP BY m.EntryID
    ) m  
        ON  m.EntryID = c.EntryID
        AND m.CommentID = c.CommentID