http://www.vidyasocks.com/requests.php
我想要它,所以当我在一个帖子中发帖时,它会将该线程撞到顶部。
这是我目前对页面"SELECT * from forum ORDER BY id DESC LIMIT 12";
数据库的线程带有id(pk)并回复id(pk)和thread_id(fk)
我该怎么办?我认为某种内在联系?
答案 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