2014-03-24 48 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 
相關問題