【发布时间】:2012-04-03 02:34:54
【问题描述】:
我有以下范围,我知道这不是最佳的:
scope :event_stream_for, lambda{ |user|
where("target_id in (?) and target_type = ?", user.events.collect(&:id), "Event")
}
这会创建 3 个查询。如何优化它?
或者,我如何将整个 sql 语句放在作用域的 lambda 中,比如
SELECT * FROM activities WHERE target_type =='Event' AND target_id IN (SELECT DISTINCT id FROM events WHERE (host_id == user.id OR invitee_id == user.id))
谢谢
【问题讨论】:
标签: sql activerecord join scope