MySQL 行排序依据

MySQL ordering rows by

我正在尝试从我的 forum_topicsforum_replies 表中提取数据以获得最后回复日期;

SELECT 
    (SELECT date FROM forum_replies WHERE topic=5 AND date < NOW()
    ORDER BY id DESC LIMIT 1) as lastreply, 
    ft.* FROM forum_topics ft
    ORDER by lastreply DESC LIMIT 5

它获取记录集中的 lastreply 数据,但不使用它来对记录集中的行进行排序。

我知道为什么,但不确定如何解决?

你应该使用相关子查询:

SELECT 
    (SELECT r.date FROM forum_replies r WHERE ft.topic = r.topic
    ORDER BY r.id DESC LIMIT 1) as lastreply, 
    ft.* 
FROM forum_topics ft
ORDER by lastreply DESC LIMIT 5