2013-07-01 57 views
0

我在ActiveRecord中有2個模型,比如A和B,都有item_id字段,這兩個模型都是主鍵。如何從2個沒有任何關聯的ActiveRecord模型中獲取結果

但是,還有他們之間沒有關聯(的has_many,belongs_to的等)

答:ITEM_ID,attr_1,attr_2

B:ITEM_ID,attr_3,attr_4

現在,我需要獲取數據來自A和B的某些子句涉及attr_1 ..attr_4

SQL:從A,B選擇A.item_id,attr_1,attr_2,attr_3,attr_4,其中A.item_id = B.item_id和attr_1 =「foo」以及attr_3 =「bar」

選項我現在想的是,A和B都將查詢分解(表,子句,字段等)返回給控制器,並讓控制器創建類似上面的查詢。 然後使用 執行查詢ActiveRecord :: Base.connection.execute(查詢)

PS:不想從第一個模型中獲取結果,迭代它並從第2個模型中獲取結果。會導致太多的數據庫查詢。另外,不要合併兩個表格,因爲它們包含不相關的數據。

有什麼更好的建議?

回答

0

像加入一樣?

A.joins('JOIN bs ON bs.item_id = as.item_id AND as.attr_1="foo" AND bs.attr_3="bar"').select("as.attr_1, as.attr_2, bs.attr_3, bs.attr_4") 

這是未經測試,但接近的東西也應該工作。

相關問題