我目前正在构建一个简单的PHP + MySQL论坛,但我遇到的问题是以正确的格式显示信息。
我当前的SQL代码是
SELECT forum_posts.catId, forum_posts.postId, forum_posts.date, forum_posts.message,
forum_posts.userId, users.userId, users.username, forum_thread.threadId, forum_thread.subjectTitle
FROM forum_posts
LEFT JOIN forum_thread ON forum_posts.threadId = forum_thread.threadId
LEFT JOIN users ON users.userId = forum_posts.userId
GROUP BY forum_posts.catId
ORDER BY forum_posts.postId DESC, forum_posts.date DESC, forum_posts.catId ASC
我遇到的问题是它会带回正确类别中的所有内容,但它会带回类别的第一个结果而不是最后一个结果。
我只想让代码显示每个类别中的最后一个回复。
非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
您的查询应返回一系列行。尝试将结果限制为1个元素。如果您对结果进行降序排序,您将获得最后一项。
ORDER BY ... DESC LIMIT 1
我不确定您是否在postId
或date
找到了最新的条目。如果按日期找到,则必须使用date
开始分组。
但是我不明白为什么你只是为了获得一个数据集而对结果进行排序。
ORDER BY forum_posts.date DESC LIMIT 1;
这是你想要的吗?此外,这可以帮助您:Select last row in MySQL。