我有个问题:有如下的一个表,
|id |user_id | content|
|1 |1 |.......|
|2 |1 |.....|
有N多个user_id,用什么sql语句才可以做到:
每个user_id只显示(limit)10个content
想要类似这样的结果:
user_id content
1 ....
.....最多只显示10个,user_id=1的.....
1 ....
2 ....
.....最多只显示10个,user_id=2的.....
2 ....
这个情况就是每个类别(按照user_id)分类,
分类之后每个类别,至多取出10个,
这个SQL语句,应该怎么写 ?
问题的起源是这样的,OSC的设计就是,每个跟帖,都可以有N多评论,但是每个跟帖的评论只会至多显示X个。
我想知道这种情况的数据库表结构是怎么设计的:
每个类别,都只会limit出X个结果,这到底该怎么实现?SQL语句是怎样的?
谢谢!!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个需要用到窗口查询,PostgreSQL中可以这样来使用,MySQL不支持:
select * from (select *,row_number() over (partition by user_id) rn from tbl) t where t.rn<=10;
建议你更换数据库。