1

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

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

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

4

2 回答 2

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

或类似的东西。

于 2009-10-11T02:59:55.957 回答
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
于 2009-10-11T03:05:52.077 回答