[英]Selecting ordered and unique values from one to many mysql relationship
在phpbb3中我想选择最新的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
然而,我得到了正确的顺序,但有重复的主题。 我想得到正确的订单,没有重复的主题,但我不知道如何?
您可以在t_topics
上使用group by子句而不是Distinct。 topic_id
。 查询是:SELECT t_topics
。 topic_id
, t_topics
.topic_title FROM t_topics
, t_posts
WHERE t_posts
.topic_id = t_topics
.topic_id GROUP BY t_topics
。 topic_id
ORDER BY t_posts
.post_id DESC LIMIT 10;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.