0
我有3個型號。 Table1
屬於Table2
和Table2
屬於Table3
。外部加入軌道中的3個表格
我想要得到一個ActiveRecord::Relation
,其中包括所有3個表中的所有字段,包括空值(外部連接以獲取所有Table1),Table1上的WHERE子句和Table3中的列的順序。
我想在SQL是什麼:
SELECT * FROM Table1 LEFT OUTER JOIN Table2 ON Table2.id = Table1.table2_id
LEFT OUTER JOIN Table3 ON Table3.id = Table2.table3_id
WHERE Table1.column1 = "example"
ORDER BY Table3.table3_column
不過,我一直在努力了幾個小時,現在做到這一點的軌道還是一無所獲。可能嗎?
@records = Table1.joins(:table2).joins(:table3).where(:column1 => "example").order("table3_column")
(例如),因爲它正在尋找表1和表3之間的聯繫,除了通過表2以外,它不存在。我需要加入一次,然後加入。更何況這是一個內部連接。我試過的形式:
@records = Table1.joins("LEFT OUTER JOIN Table2 ON Table2.id = Table1.table2_id LEFT OUTER JOIN Table3 ON Table3.id = Table2.table3_id")
但是我得到零。
感謝您的任何幫助。
只需使用的find_by_sql? – davidfurber