我正在尝试让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变得更聪明而不进行后两个查询?
\
答案 0 :(得分:1)
这只是一个假设。但我不明白为什么你需要定义:include和:join。 只有:连接应该足以进行查询并可能解决您的问题。