SQL 分组查询后取每组的前 N 条记录

2022-06-21 23:19:19 +08:00
 kikione

怎么写效率快?有内容表和评论表两张。

有一批内容,每个内容都有一批评论,我要查出每个内容的最新三条评论,要怎么查?

怎么写效率高

1771 次点击
所在节点    程序员
6 条回复
adoal
2022-06-21 23:31:51 +08:00
用窗口函数
liuzhaowei55
2022-06-21 23:42:46 +08:00
mysql 一条语句写不出来,pgsql 好像是可以的,没有细研究过。
Suddoo
2022-06-21 23:48:02 +08:00
按内容分组,取每组前 N 个 https://www.cnblogs.com/willingtolove/p/10623841.html
Saxton
2022-06-22 09:01:02 +08:00
窗口函数就可以做到,如果不用窗口就得子查询。
opendragonhuang
2022-06-22 09:15:35 +08:00
用窗口函数。MySql 8.0 以上版本用 row_number 函数, 具体用法可以参考 3 楼。MySQL 5.7 的可以参考: https://wenku.baidu.com/view/67428109463610661ed9ad51f01dc281e53a56d6.html 手动实现 row_number 函数。
seth19960929
2022-06-22 15:07:01 +08:00
用开窗函数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861221

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX