gpt4 book ai didi

mysql - 使用 SQL 获取帖子的最后回复

转载 作者:行者123 更新时间:2023-11-29 01:02:00 25 4
gpt4 key购买 nike

我正在尝试通过获取帖子的最后回复来复制论坛功能。

为清楚起见,请参阅 PHPBB : 有四列,最后一列是我想复制的。

我的表是这样创建的:

  • discussion_id(主键)
  • 用户编号
  • parent_id
  • 评论
  • 状态
  • 发布日期

我正在考虑创建一个链接表,该链接表会在每次回复帖子时更新。

链接表如下:

  • discussion_id(主键)
  • last_user_id
  • last_user_update

但是,我希望有一个提前查询来实现这个方法。也就是说,抓取每个家长讨论,并在每个家长讨论中找到最后的回复。

我说的对吗?


这是一个更新。我仍然遇到了一些麻烦,但我觉得我快到了。

我当前的查询:

SELECT 
`discussion_id`,
`parent_id`,
`user_id` as `last_user_id`,
`user_name` as `last_user_name`
FROM `table1`, `table2`
WHERE `table1`.`id` = `table2`.`user_id`

结果:

discussion_id---------parent_id-----last_user_id-------last_user_name
30---------------------NULL-------------3--------------raiku
31---------------------30---------------2--------------antu
32---------------------30---------------1--------------admin
33---------------------NULL-------------3--------------raiku

添加这个:

GROUP BY `parent_id`

将它变成:

discussion_id---------parent_id-----last_user_id-------last_user_name
32---------------------30---------------1--------------admin
33---------------------NULL-------------3--------------raiku

但我想让它变成:

discussion_id---------parent_id-----last_user_id-------last_user_name
30---------------------NULL-------------3--------------raiku
32---------------------30---------------1--------------admin
33---------------------NULL-------------3--------------raiku

id 30 和 id 33 共享相同的 parent_id: NULL 但它们是“起始线程”或“父帖子”

它们不应该组合,我将如何继续“分组”但“忽略”空值?

最佳答案

此查询将根据 parent_id 进行最高(因此假设是最新)讨论。然而,这不是最简洁的解决方案......

select discussion_id, user_id, pubdate
from tablename
where discussion_id in
(
select max(discussion_id)
from tablename
group by parent_id
)

关于mysql - 使用 SQL 获取帖子的最后回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505951/

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