1

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

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

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

数据库有一个 id(pk) 的线程,并用一个 id(pk) 和一个 thread_id(fk) 回复

我该怎么办?我假设某种内部连接?

4

1 回答 1

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

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

编辑:根据 Ami 的评论添加了 DISTINCT

于 2012-05-05T05:21:03.103 回答