2017-02-03 20 views
0

我有Model1和Model2其中has_and_belongs_to_many彼此。 鑑於Model2的id列表,我如何查詢與它們相關的Model1?has_and_belongs_to_many - 查詢Model1項目給出Model2 ID列表

我必須使用連接,但具體到底如何?如果是一對多的一個,我應該這樣做:

select m1.* from model1 as m1 
    inner join model2 as m2 
    on m1.id = m2.m1_id 
    where m2.id in (?) 

回答

1

你將與你手動構建相同的查詢實現這個Rails中,在ActiveRecord表示

Model1.joins('inner join model2').where(model2: { id: list_of_ids }) 
+0

'PG: :語法錯誤:錯誤:語法錯誤在或接近「WHERE」' – Kotaa

+0

sql'SELECT「model1」。* FROM「model1」inner join model2 WHERE「model2」。「id」IN(1,2,3)' – Kotaa

相關問題