エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
サブクエリと闘うActiveRecord(JOIN先の最新や最大値のレコードを取得する) - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
サブクエリと闘うActiveRecord(JOIN先の最新や最大値のレコードを取得する) - Qiita
0. 背景・こんな時に使いたいなど ユーザー毎の最高得点や、ユーザー毎の最新の投稿などを取得・表示し... 0. 背景・こんな時に使いたいなど ユーザー毎の最高得点や、ユーザー毎の最新の投稿などを取得・表示したいケースというのはよくあると思う。 そんな場合のSQL(ActiveRecord)は以下に記すようにある程度パターンとして決まっている気がするので、便利用に記事にしておく。 1. ユーザ毎の投稿の最新日時を降順で表示する 1-1. WHEREのサブクエリパターン > User.joins(:posts).where(posts: { created_at: Post.group(:user_id).select('MAX(created_at)') }).order('posts.created_at DESC') # => SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."user_id" = "users"."id