SQLのログを見ていて気がついたのですが、
最近のActiveReco
1 ?> Article.find(:all, :include => [:user => :face]);1 2 => 1 3 >> Article Load (0.005234) SELECT * FROM `articles` 4 User Load (0.000645) SELECT * FROM `users` WHERE (`users`.id IN ('13','9','37','17','1','3')) 5 Face Load (0.002931) SELECT `faces`.* FROM `faces` WHERE (`faces`.user_id IN (1,3,9,13,17,37))
以前のようにJOINを使わずに、3回に分けるようになっているのですね。
しかしながら、条件が複雑になってくると、 :limitオプションとの相性が悪いケースがあるようで、 まだ若干バグがあるようです。 そんな時は手で:joinsを書いています。
posted by
genki
on Sun 3 Aug 2008
at 22:18