2011-06-08 47 views
0

第一個問題在這裏。我有兩個軌道模型,一個是「Quiniela」(預測表),另一個是實際的「預測」。 Quiniela有許多屬於quinielas的預測和預測。預測具有稱爲「點」的屬性,當實際遊戲結果被添加系統時,該點被更新。我想用它的預測點總數來更新所有具有「qpoints」屬性的Quinielas。這裏是我現在所擁有的,恐怕這可能是簡單的,但是我在SQL語句中背景很差。Rails update_all使用連接並總和

基本的想法是更新所有quinielas以顯示從其預測中獲得的所有點的總和。現在我得到一個無效的分組聲明或列不存在。謝謝。

Quiniela.joins(:predictions). 
     select('SUM(predictions.points) AS totalpts, quinielas.qpoints AS points'). 
     update_all('points = totalpts') 

回答

1

我已經想通了:

Quiniela.update_all('qpoints = (SELECT SUM(predictions.points) 
           FROM Predictions 
           WHERE Quinielas.id = Predictions.quiniela_id)') 

找到幫助this過去的問題

+0

這將爲每一行,壞主意一個子查詢... – sunki 2012-02-14 07:36:16