2

各user_idの最新のlesson_planレコードのクエリを実行するRailsの方法は何ですか?

class LessonPlan < ActiveRecord::Base
    belongs_to :user
end

私が見たすべての投稿には、結合またはサブクエリが含まれています。これを行う簡単な方法はありませんか?

私はもう試した

LessonPlan.select(['distinct(user_id)', :id, :created_at]).where(:user_id => users).order('created_at DESC') 

次のようなクエリが生成されます。

SELECT distinct(user_id), id, created_at FROM `lesson_plans` WHERE `lesson_plans`.`user_id` IN (110031, 110032, 110033, 110034) ORDER BY created_at DESC

しかし、このクエリを試すと、user_id が重複する行が返されます。

これが重複した質問である場合は申し訳ありません。私は本当に解決策を探しました。

4

2 に答える 2

3

Rails#ActiveRecord:

LessonPlan.select([:user_id, :id, 'MAX(created_at)']).group(:user_id).limit(10)

MySql :

select id, user_id, MAX(created_at) from lesson_plans group by user_id limit 10
于 2012-04-04T07:54:13.783 に答える
0

その仕業かも

LessonPlan.select([:user_id, :id, 'MAX(created_at)']).group(:user_id)
于 2012-04-04T07:35:15.413 に答える