我有3个表:
论坛,线程,评论
我想在特定论坛中对所有线程进行排序,考虑到线程发布的时间以及在主题中发布的最后一个评论。
线程中的每个行都有一个" fid"列,该列显示了线程已发布的哪个论坛。
注释中的每一行都有一个" tid"列,该列显示了评论已发布的线程。
完成什么正确的查询?
编辑:
结构:
论坛 - id,名称
线程 - ID,FID(论坛ID),标题,时间
评论 - ID,TID(线程ID),内容,时间
我希望以此顺序显示线程,例如:
THREAD - POSTED 10 MINUTES AGO - LAST COMMENT 6 MINUTE AGO
THREAD - POSTED 11 MINUTES AGO - NO COMMENTS
THREAD - POSTED 20 MINUTES AGO - LAST COMMENT 13 MINUTES AGO
我已经尝试过了:
SELECT * FROM threads INNER JOIN comments ON threads.id = comments.tid WHERE threads.fid = 3
GROUP BY threads.id ORDER BY MAX(comments.time) DESC
尝试
SELECT `t`.`id`, `t`.`title`, `t`.`time`, `c`.`comment_time`
FROM `threads` t
LEFT JOIN (SELECT `tid`, MAX(`time`) AS comment_time FROM `comments` GROUP BY `tid`) c
ON `t`.`id` = `c`.`tid`
ORDER BY `t`.`time`, `c`.`comment_time` desc