MySQL 行排序依据
MySQL ordering rows by
我正在尝试从我的 forum_topics
和 forum_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
我正在尝试从我的 forum_topics
和 forum_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