如何根据最后一个用户帖子将线程置于顶部(凹凸)?

时间:2012-05-05 04:55:22

标签: mysql sql forum posting

http://www.vidyasocks.com/requests.php

我想要它,所以当我在一个帖子中发帖时,它会将该线程撞到顶部。

这是我目前对页面"SELECT * from forum ORDER BY id DESC LIMIT 12";

的看法

数据库的线程带有id(pk)并回复id(pk)和thread_id(fk)

我该怎么办?我认为某种内在联系?

1 个答案:

答案 0 :(得分:2)

您是否有插入线程和回复的日期/时间戳?您不能只根据回复ID进行订购,因为有线程没有任何回复,并且无法将thread_id订单与回复ID订单相关联。

如果我对你的表格结构有正确的想法,你会在给定时间戳的情况下做这样的事情:

 SELECT DISTINCT forum.* FROM forum 
      LEFT JOIN replies on
          forum.id = replies.thread_id
  ORDER BY coalesce(replies.reply_timestamp, forum.thread_timestamp) DESC
    LIMIT 12

如果存在回复,则coalesce将返回replies.reply_timestamp,否则将使用forum.thread_timestamp。

编辑:根据Ami的评论

添加了DISTINCT