gpt4 book ai didi

mysql - 查询以获取每个主题最多 2 个回复

转载 作者:行者123 更新时间:2023-11-29 21:52:50 25 4
gpt4 key购买 nike

我希望表使用右连接从每个主题返回最多 2 个回复。我可以知道我该怎么做吗?

Topic table
+--------+
| tid |
+--------+
| 1 |
| 2 |
| 3 |
| 4 |
+--------+


Reply table
+--------+--------+
| rid | tid |
+--------+--------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 2 |
| 6 | 2 |
| 7 | 4 |
| 8 | 4 |
| 9 | 4 |
+--------+--------+

Result
+--------+--------+
| tid | rid |
+--------+--------+
| 1 | 1 |
| 1 | 2 |
| 2 | 4 |
| 2 | 5 |
| 3 | null |
| 4 | 7 |
| 4 | 8 |
+--------+--------+

最佳答案

这个 Top-N 查询怎么样:

select tid, rid from(
select t.tid, r.rid,
case when @tid is not null and @tid != t.tid then @rn := 0 else null end reset_rn,
@tid := t.tid tid_change,
@rn := @rn + 1 rn
from topic t
left join reply r on t.tid = r.tid
join (select @rn := 0, @tid := null) rn
order by t.tid, r.rid
) q
where rn < 3;

保留 2 行的关键是内部查询中的 order by

关于mysql - 查询以获取每个主题最多 2 个回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com