【发布时间】:2013-11-03 04:03:25
【问题描述】:
我目前正在努力找出我想要实现的目标的正确查询,并且想知道是否有人有一些好主意。 在这里迷路了好几天,只是找不到正确的查询来获得我需要的东西。
期望的结果:
我目前有一个完整的工作论坛,有多个类别,因为有多个类别,我想创建一个概览页面,基本上说明每个类别的最后一个线程、最后一个帖子、由谁以及在什么时间。
这是我的表格的结构
名称:论坛 字段:id、名称
名称:forum_threads 字段:id、f_id、主题、作者、上次发帖
姓名: 论坛帖子 字段:id、t_id、帖子、作者、时间
实际问题
到目前为止,我已经收到查询,它显示了我想要的所有内容,除了一件事,它没有获取最新的主题主题,其他所有内容似乎都正确显示(注意我已禁用 forums.id 9 和超过 12 的所有内容,我不想显示这些结果。
SELECT forums.id, t.id AS thread_id,
t.subject,
t.forum_id,
t.author, t.lastpost,
u1.name AS author_name, u1.avatar AS author_avatar,
u2.name AS lastpost_name, u.avatar AS lastpost_avatar
COUNT(p.id) AS postscount, COUNT(DISTINCT (t.id)) AS threadscount,
forums.name,
max(p.time) last_post_date
FROM forum_threads t
INNER JOIN users u1 ON u1.id = t.author
INNER JOIN users u2 ON u2.id = t.lastpost
INNER JOIN forum_posts p ON p.t_id = t.id
INNER JOIN forums ON forums.id = t.forum_id
WHERE forums.id != 9 AND forums.id > 12
GROUP BY forums.id
ORDER BY forums.id ASC, p.id DESC, last_post_date DESC
有人有什么想法吗?
【问题讨论】: