【发布时间】:2011-01-12 05:30:49
【问题描述】:
我有两个表要外连接在一起:“发布”左外连接和“评论”。
帖子和评论之间存在一对多的关系。
我希望能够为每个帖子提取第一个(例如 10 条)帖子记录和所有相关评论(如果有)。
我通常这样做的方式是使用公用表表达式并使用 ROW_NUMBER() OVER。但是,ROW_NUMBER() 计算每一行,在这种情况下这不起作用,因为我只想计算 Post 记录。
我正在查看 ROW_NUMBER() OVER (PARTITION),但它没有按我的预期工作。
所以如果想要前 5 个帖子,我会得到类似的内容:
PostNumber PostId CommentId
1 1 1
1 1 2
2 2 -
3 8 3
3 8 4
4 9 5
5 15 -
【问题讨论】:
-
您想要十个 POSTS 记录,其中 COMMENTS 可能有 1+?因此,如果 POSTS 记录 #1 有 100 多个 cmets...
标签: sql-server join