0
我想實現的東西,需要在SQL上完全3秒,我掙扎了好幾個小時,我想加載所有記錄,如果存在,如果沒有,則加入左連接給我相關的模型。rails加入關聯和ID
我想創建查詢如下:
"SELECT * FROM apartments LEFT JOIN comments ON apartments.id = comments.apartment_id AND comments.user_id = ?"
,當我打電話apartment.comments,它會給我只是記錄(只能有一個),對特定用戶,不是所有的每個用戶的記錄。
我試圖
Apartment.joins("LEFT OUTER JOIN comments ON comments.apartment_id = apartments.id AND comments.user_id = #{user_id}")
,但它不工作,因爲當我打電話apartments.comments它觸發另一個查詢返回的所有可能的意見。
Apartment.includes(:comments).where("comments.user_id = ?", user_id)
不起作用,因爲它只返回有特定用戶評論的公寓。
需要幫助!
代碼中的錯誤很多。什麼是沒有table_name的'LEFT JOIN ON'?爲什麼表名不同:'LEFT OUTER JOIN trip_items ON評論.'? – alex
你是正確的,修復。我複製粘貼並更改名稱以使其更加容易理解 –