获取每个类别的最后一篇文章

时间:2014-03-24 11:25:50

标签: php mysql

我有4张桌子:

 1. forums (id,forum_id,name,group_id) - there are categories and
        sub-categories
 2. topics (id,forum_id,user_id,name,dt,deleted[default - 0])
 3. posts (id,topic_id,text,edit_dt,user_id,deleted)
 4. users (id,name)

获取主要类别最后帖子的最佳方法是什么?或者可以在论坛中添加新字段 - last_post_idlast_post_namelast_post_dt,然后在delete,添加新主题/回复更新这些字段?

3 个答案:

答案 0 :(得分:0)

首先,要识别您的“上一篇文章”,您应该在帖子表中添加时间戳(DateTime)。

此外,在您的问题中,定义什么是类别(我认为它是主题)和数据示例,并与您所需输出的示例配对。

答案 1 :(得分:0)

我在forums表中添加了字段(last_post_id,last_poster_id,last_dt),当插入新的/删除/更新的帖子时,主论坛将更新最新信息。

答案 2 :(得分:0)

如果数据库不是很大,并且您的所有外键和ID都有索引,那么您可以在不创建任何新字段的情况下进行dinamically。

我假设posts表中的id字段是autoincrment。 这个mysql查询选择每个论坛中包含一些活动的最后一个主题的名称。

SELECT T.name FROM forums F 
JOIN topics T ON T.forum_id = F.id
JOIN posts P ON P.topic_id = T.id
GROUP BY F.id
ORDER BY P.id ASC