私はレール3アプリケーションを作成しています。最新の投稿でグループをソートするSQLクエリ
これはグループ(メンバーとのソーシャルグループなど、メンバーはグループに投稿できます)があります。 私のモデルはグループと投稿で、グループにはhas_manyの投稿があります(それぞれ(投稿)には明らかにgroup_idがあります)。
投稿なしのグループを含め、最近の投稿で並べ替えられたグループのリストを取得する方法を理解しようとしています。
ありがとうございます! sorted_groups_ids = Group.joins("LEFT JOIN posts p ON groups.id = p.group_id").select("groups.id").group("groups.id").order("MAX(p.id) DESC").map(&:id) sorted_groups = Group.find(sorted_groups_ids).sort_by { |g| sorted_groups_ids.index(g.id) }
:
ありがとう、私は何も成功していない時間以上を把握しようとしていました。あなたの答えはDESCがないことを除いて完璧です)。 – v0rin
ありがとう、私は、これを後で読む人の利益のために、descを追加しました。 –
レール3の最終的な解像度を探している人にとっては、 'sorted_groups_ids = Group.joins(" LEFT JOIN posts p ON groups.id = p.group_id ")。select(" groups.id " ").group(" groups.id ")。order(" MAX(p.id)DESC ")マップ(&:id) sorted_groups = Group.find(sorted_groups_ids).sort_by {| g |他の検索が前の注文を破るので、2行目が必要です – v0rin