2014-03-24 50 views
0

我有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_id,last_post_name,last_post_dt,并在delete,添加新主题/回复更新这些字段?

+2

您的列不包含任何类别列。请编辑您的问题,并提供样本数据和期望的结果。 –

+0

你可以在论坛表中添加一个时间戳列 – Akg

+0

orderby id DESC看起来似乎很简单,除非我丢失了一些东西 – ggdx

回答

0

首先,要确定您的“最后发帖”您应该添加一个时间戳(日期时间)到您的帖子表。

另外,在你的问题中,定义什么是类别(我认为这是主题)和你的数据的一个例子,配合你想要的输出的例子。

0

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

0

如果数据库不是真的很庞大,并且所有的外键和标识符都有索引,那么可以在不创建任何新字段的情况下使用索引。

我假设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 
相关问题