从一个到多个mysql关系中选择有序和唯一值

时间:2015-02-19 01:27:52

标签: mysql sql one-to-many phpbb

中,我想选择最新的10个有效主题。即最后有帖子的话题。在PHPbb3架构中,表topics有许多posts。为了实现这一点,我尝试了以下SQL

    SELECT DISTINCT (`t_topics`.`topic_id`), `t_topics`.topic_title   FROM 
`t_topics` , `t_posts` WHERE `t_posts`.topic_id = `t_topics`.topic_id
 ORDER BY `t_posts`.post_id DESC LIMIT 10;

然而,有一个话题我确信它有最新的帖子,它出现在记录的末尾。

我尝试删除DISTINCT但是,我得到了正确的顺序,但有重复的主题。我希望得到正确的订单,没有重复的主题,但我不知道怎么做?

1 个答案:

答案 0 :(得分:0)

您可以在t_topicstopic_id上使用group by子句而不是Distinct。 查询是:SELECT t_topicstopic_idt_topics。topic_title FROM t_topicst_posts WHERE t_posts。topic_id = t_topics。 topic_id GROUP BY t_topicstopic_id ORDER BY t_posts。post_id DESC LIMIT 10;