我正在整理一个带有主题/帖子的简单论坛脚本。我正在尝试通过最新帖子对主题进行排序,并且在以下问题中得到了一些答案:MYSQL Order from another Table,但我遇到的问题是某些主题还没有任何帖子,所以查询根本不选择这些主题。
当前编码为:
SELECT DISTINCT forum.*
FROM forum
INNER JOIN forum_posts
ON forum.id = forum_posts.parent_id
GROUP BY forum.id
ORDER BY forum_posts.parent_id DESC,
forum_posts.time_created DESC
LIMIT ?,?
如果某个主题的 forum_posts.parent_id 中没有匹配项,我想告诉 ORDER BY 按 forum.time_created 进行排序。
附带说明一下,我还想知道如何将 WHERE 子句放入此查询中。我只想从论坛表“WHERE access <= ?”中获取行,但无法确定该片段的放置位置。
非常感谢任何帮助!
编辑:
目标是返回主题(来自论坛表)根据以下详细信息:
- 在哪里 forum.access <= ?
- 限制 ?,?
- ORDER BY 来自 forum_posts 表的最新帖子,其中 forum_posts.parent_id 与 forum.id 或 forum.time_created 匹配
编辑2:
带有相关数据的示例 SQLfiddle。这是行不通的,因为订单应该是 11,10,9,1,2 http://sqlfiddle.com/#!2/83535/2