http://www.vidyasocks.com/requests.php
我想要它,所以当我在一个线程中发布时,它会将该线程撞到顶部。
这是我目前拥有的页面"SELECT * from forum ORDER BY id DESC LIMIT 12";
数据库有一个 id(pk) 的线程,并用一个 id(pk) 和一个 thread_id(fk) 回复
我该怎么办?我假设某种内部连接?
http://www.vidyasocks.com/requests.php
我想要它,所以当我在一个线程中发布时,它会将该线程撞到顶部。
这是我目前拥有的页面"SELECT * from forum ORDER BY id DESC LIMIT 12";
数据库有一个 id(pk) 的线程,并用一个 id(pk) 和一个 thread_id(fk) 回复
我该怎么办?我假设某种内部连接?
您是否有插入线程和回复的日期/时间戳?您不能仅根据回复 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