1
任何人都可以爲下面的查詢提出一個簡單的修復?活動記錄之間的查詢衝突:連接和:包括
Workout.all(:joins => [:person, :schedule],
:conditions => ["schedule.id = ? AND people.gym_id = ?", schedule.id, gym.id ],
:order => "time DESC",
:include => [:person]),
錯誤消息指出的Mysql ::錯誤:沒有唯一的表/別名:「人」:然後很長的SQL查詢
當我刪除:人從:包括選擇,代碼工作正常。然而,然後我得到了「n + 1查詢」問題:當我顯示鍛鍊時,它會爲每個人生成一個單獨的查詢。
我假設來自連接和包含選項的'people'表在生成的SQL中發生衝突。有沒有辦法使用查找選項爲具有活動記錄的表別名?或者我需要使用sql片段作爲:joins選項,以便我可以使用AS爲表格添加別名?
我還沒有將此應用程序升級到3.0版,所以我無法使用「Class.joins()。where()」語法。
謝謝,並獲得成功,但我有一個很難理解爲什麼。將人放入:include會生成一個左外連接,它應該返回所有鍛鍊,而不僅僅是那些與person.gym_id條件匹配的人,對吧?但它確實有效。 – 2011-03-21 23:01:34