所以假设我有一堆博客条目,我想找出每个条目中的最新评论,我将如何在 SQL Server 中找到它。
我在临时表中有这些博客条目的整数 ID 列表。在这种情况下,像 select top 1 这样的东西不起作用。
我想到的方法是循环,我们都知道有多少人喜欢在 SQL Server 中避免循环。
所以假设我有一堆博客条目,我想找出每个条目中的最新评论,我将如何在 SQL Server 中找到它。
我在临时表中有这些博客条目的整数 ID 列表。在这种情况下,像 select top 1 这样的东西不起作用。
我想到的方法是循环,我们都知道有多少人喜欢在 SQL Server 中避免循环。
您可以在 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
或类似的东西。
好吧,这是一种方法:
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