私の Rails アプリケーションでは、最新の投稿を子として持つブログのブロックをレンダリングしたいと考えています。ただし、質問自体はRails固有のものではなく、プレーンSQLの回答が表示されても問題ありません。データ構造は次
のとおりです。posts
テーブル、blogs
テーブル。それらを外部キーで参照しながら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
と、適切な順序が得られますが、結果に投稿が重複しています。このタスクに間違ったアプローチを使用していることは理解しています...しかし、適切なものは何ですか?
前もって感謝します!