查询声明
select * from timetables where user_id IN
(SELECT user_id FROM timetables GROUP BY user_id HAVING COUNT(*) > 1)
我不想使用find_by_sql。 因为find_by_sql返回数组。
我想使用(.where,.group,.having ......)
的混合物帮帮我......
答案 0 :(得分:1)
这种方法的问题在于,子查询的结果将由ruby解释,而不是由MySQL解释,从而大大降低了性能,但是在这里你去了:
Timetable.where(user_id: Timetable.group(:user_id)
.having('count(*) > 1')
.pluck(:user_id))
#⇒ Timetable::FriendlyIdActiveRecordRelation < ActiveRecord::Relation