如何在ActiveRecord中指定JOIN ON子句?Activerecord:包含附加條件
對ActiveRecord.find方法使用:include參數時,創建的SQL使用JOIN操作和外鍵=主鍵的ON子句。例如:
A.find(:include => :B)
結果
select ... from A
left outer join B on B.a_id=A.id
現在我的例子:
A.find(:include => { :B => { :include => :C } })
結果:
select ... from A
left outer join B on B.a_id=A.id
left outer join C on C.b_id=B.id
但是,我只想要一些記錄在C中,但如果沒有找到,那麼我仍然希望A和乙
這不起作用
A.find(:include => { :B => { :include => :C } },
:condition => "C.rec<10")
因爲在結果:
select ... from A
left outer join B on B.a_id=A.id
left outer join C on C.b_id=B.id
where C.rec<10
如何指導AcriveRecord建立這樣的查詢?
select ... from A
left outer join B on B.a_id=A.id
left outer join C on C.b_id=B.id and C.rec<10