gpt4 book ai didi

mysql - SQL Select 连接同一个表(按回复最多排序)

转载 作者:行者123 更新时间:2023-11-29 12:42:14 25 4
gpt4 key购买 nike

所以我想从“board_b”中选择*拥有最多回复的线程。我的问题是回复实际上在同一个表中。看看这个:

+---+-----------+---------+
|ID | name | replyto |
+---+-----------+---------+
| 1 | newthread | |
| 2 | reply | 1 |
+---+-----------+---------+

(注意:名称列没有设置为这些,只是为了演示) 如您所见,1 是一个新线程, 2 是对 1 的回复。现在我有一个充满这些的表,并且该表有更多列(文本、时间戳等...),但总体思路与上面的类似。

我想要实现的是选择所有线程,并按最多回复对它们进行排序(并且还限制为0、20)。我尝试过连接表,但它对我来说太复杂了,无法理解,因此示例代码会很棒。

最佳答案

像这样的事情就可以做到:

SELECT board.id, board.name, COUNT(reply.id)
FROM board_b board INNER JOIN board_b reply ON board.id = reply.replyto
GROUP BY board.id, board.name
ORDER BY COUNT(reply.id) desc
LIMIT 20

关于mysql - SQL Select 连接同一个表(按回复最多排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25948701/

25 4 0
文章推荐: php - 如何获取mysql中主结果中两个别名表结果的总和?
文章推荐: php - 如何在 php 中使用