SQL分组-每篇文章仅显示5条注释

SQL分组-每篇文章仅显示5条注释,sql,tsql,sql-server-2008,Sql,Tsql,Sql Server 2008,为了让事情更容易理解,让我们以下面的例子为例: 我只想显示某个特定帖子的前5条评论,比如facebook上人们无法评论的帖子。如果接受此查询,我如何在SQL中执行此操作 select tblPost.id,tblComment.id from tblComment,tblPost where tblPost.id = tblComment.postid 如果我尝试选择前5个tblComment.id。。。它将只返回5个结果,而不是所有文章,每篇文章最多只返回5条评论。尝试使用行号,假设您使用的是

为了让事情更容易理解,让我们以下面的例子为例: 我只想显示某个特定帖子的前5条评论,比如facebook上人们无法评论的帖子。如果接受此查询,我如何在SQL中执行此操作

select tblPost.id,tblComment.id from tblComment,tblPost where tblPost.id = tblComment.postid
如果我尝试选择前5个tblComment.id。。。它将只返回5个结果,而不是所有文章,每篇文章最多只返回5条评论。

尝试使用行号,假设您使用的是支持它的数据库:

SELECT id, postid
FROM tblComment
(
    SELECT 
        id,
        postid,
        ROW_NUMBER() OVER (PARTITION BY postid ORDER BY id DESC) AS rn
    FROM tblComment
) AS T1
WHERE rn <= 5

尝试使用行号,假设您使用的是支持该行号的数据库:

SELECT id, postid
FROM tblComment
(
    SELECT 
        id,
        postid,
        ROW_NUMBER() OVER (PARTITION BY postid ORDER BY id DESC) AS rn
    FROM tblComment
) AS T1
WHERE rn <= 5

例如,为了得到2个TBLPost和每5个注释,您将在这个查询中遇到问题,因为我认为这不起作用。您需要使用JOIN来完成此操作,例如获取2个tblpost,对于每5个注释,您将遇到此查询的问题,因为我认为这将不起作用。您需要使用JOIN来完成此任务