Mysql SQL查询需要修改-不能多次显示同一主题

Mysql SQL查询需要修改-不能多次显示同一主题,mysql,sql,select,group-by,sql-order-by,Mysql,Sql,Select,Group By,Sql Order By,我在我的网站上有一张表格,上面显示了我在phpBB论坛上的最新帖子。我的查询按预期工作,只是每个主题只需要一个结果 如果有六个人连续回答一个话题,我不希望桌子上满是这一个话题;我只想要该主题的最新结果+其他五个 目前的情况是,如果我在某个主题中发布回复,该主题将出现在表格的顶部。X先生说,如果其他人回复了我的帖子,同样的主题会出现在我上面的列表中,带有我回复的链接+他的回复的链接。我希望他的回答比我的更近,如果有意义的话,可以替换该表中同一主题的列表 试试这个: SELECT p.post_id

我在我的网站上有一张表格,上面显示了我在phpBB论坛上的最新帖子。我的查询按预期工作,只是每个主题只需要一个结果

如果有六个人连续回答一个话题,我不希望桌子上满是这一个话题;我只想要该主题的最新结果+其他五个

目前的情况是,如果我在某个主题中发布回复,该主题将出现在表格的顶部。X先生说,如果其他人回复了我的帖子,同样的主题会出现在我上面的列表中,带有我回复的链接+他的回复的链接。我希望他的回答比我的更近,如果有意义的话,可以替换该表中同一主题的列表

试试这个:

SELECT p.post_id, p.post_time, p.topic_id, p.forum_id, p.poster_id, 
       pt.topic_id, pt.topic_title, pu.user_id, pu.username, 
       pu.user_avatar, pu.user_avatar_type 
FROM phpbb_posts p
INNER JOIN (SELECT topic_id, MAX(post_time) post_time FROM phpbb_posts GROUP BY topic_id) A ON p.topic_id= A.topic_id AND p.post_time = A.post_time 
INNER JOIN phpbb_topics pt ON p.topic_id = pt.topic_id
INNER JOIN phpbb_users pu ON p.poster_id = pu.user_id
WHERE p.forum_id NOT IN (21, 23)
ORDER BY p.post_time DESC 
LIMIT  0, 6;


嗨,萨哈什。我已经插入了你的代码,但不幸的是,我仍然得到了相同的结果,也就是说,在论坛的两篇最新帖子位于同一主题的地方,我得到了重复的结果
SELECT p.post_id, p.post_time, p.topic_id, p.forum_id, p.poster_id, 
       pt.topic_id, pt.topic_title, pu.user_id, pu.username, 
       pu.user_avatar, pu.user_avatar_type 
FROM phpbb_posts p
INNER JOIN (SELECT topic_id, MAX(post_time) post_time FROM phpbb_posts GROUP BY topic_id) A ON p.topic_id= A.topic_id AND p.post_time = A.post_time 
INNER JOIN phpbb_topics pt ON p.topic_id = pt.topic_id
INNER JOIN phpbb_users pu ON p.poster_id = pu.user_id
WHERE p.forum_id NOT IN (21, 23)
ORDER BY p.post_time DESC 
LIMIT  0, 6;
SELECT p.post_id, p.post_time, p.topic_id, p.forum_id, p.poster_id, 
       pt.topic_id, pt.topic_title, pu.user_id, pu.username, 
       pu.user_avatar, pu.user_avatar_type 
FROM (SELECT * FROM (SELECT * FROM phpbb_posts p ORDER BY p.topic_id, p.post_time DESC) AS A GROUP BY topic_id) AS p
INNER JOIN phpbb_topics pt ON p.topic_id = pt.topic_id
INNER JOIN phpbb_users pu ON p.poster_id = pu.user_id
WHERE p.forum_id NOT IN (21, 23)
ORDER BY p.post_time DESC 
LIMIT  0, 6;