gpt4 book ai didi

mysql - 论坛的嵌套数据

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

我自己卡住了...

我们在嵌套集模型中设置了左右限制来存储论坛帖子,我需要选择按最新回复排序的主题。

相关表结构:

id  lft  rght date
1 1 4 2011-01-01
2 5 8 2011-01-02
3 6 7 2011-01-04
4 2 3 2011-01-05

所以我需要得到

id last_reply latest
1 4 2011-01-05
2 6 2011-01-04

如有任何帮助,我们将不胜感激。

最佳答案

SELECT  pt.*, MAX(pc.date) AS latest
FROM post pt
JOIN post pc
ON pc.lft BETWEEN pt.lft AND pt.rgt
WHERE NOT EXISTS
(
SELECT NULL
FROM post pu
WHERE pt.lft BETWEEN pu.lft AND pu.rgt
)
GROUP BY
pt.id
ORDER BY
latest DESC

嵌套集不适合选择深度级别,因此效率不高。

我建议将线程启动 id 与每个帖子一起存储,并在 (starter, date) 上创建一个复合索引。

这样,您可以使用:

SELECT  pt.*,
MAX(date) AS latest
FROM post pu
JOIN post pt
ON pt.id = pu.starter
GROUP BY
pu.starter
ORDER BY
latest DESC

这样会快得多。

关于mysql - 论坛的嵌套数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5421275/

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