在我的 Rails 应用程序中,我想渲染一个博客块,其中包含最新的帖子作为它们的子级。然而,问题本身并不是 Rails 特有的,可以看到纯 SQL 的答案。数据结构为:
posts
table、blogs
table;blogs
同时通过外键引用它们blogs.id
。我正在尝试做的事情:posts
posts.blog_id
SELECT distinct blogs.id, blogs.* FROM `blogs` INNER JOIN `posts` ON `posts`.`blog_id` = `blogs`.`id` ORDER BY posts.created_at desc, posts.id desc LIMIT 5
但我得到的记录顺序错误。当我distinct blogs.id
从查询中删除时,我得到了正确的排序,但是结果中有重复的帖子。我知道我在执行这项任务时使用了错误的方法……但是正确的方法是什么?
提前致谢!