【发布时间】:2009-09-24 15:50:05
【问题描述】:
我正在尝试让 ActiveRecord 执行以下查询:
SELECT A.*, B.*, C.* FROM A INNER JOIN B ON B.ID = B_ID INNER JOIN C ON C.ID = C_ID
数据集相当大,我需要最好的性能,因此这个特定的查询。
我的模型和查询如下:
class A < ActiveRecord::Base
belongs_to :b
belongs_to :c
end
A.find :all, :include => [:b, :c], :joins => [:b, :c]
但是,这会导致执行以下查询:
SELECT A FROM A INNER JOIN B ON B.ID = B_ID INNER JOIN C ON C.ID = C_ID
SELECT * FROM B WHERE ID IN (...)
SELECT * FROM C WHERE ID IN (...)
有什么方法可以让 ActiveRecord 更聪明,而不是执行后两个查询?
\
【问题讨论】:
标签: sql ruby activerecord join