我目前正在努力找出我想要实现的正确查询,并且想知道是否有人有一些好主意。已经在这里迷路了好几天了,只是找不到正确的查询来获得我需要的东西。
期望的结果:
我目前有一个完整的工作论坛,有多个类别,因为有多个类别我想创建一个概述页面,基本上说明最后一个线程,最后一个帖子,每个类别的作者和时间。
这是我的表格的结构
名称:论坛 字段:id,名称
名称:forum_threads 字段:id、f_id、主题、作者、lastpost
名称:forum_posts 字段: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
有人有什么想法吗?