2017-02-03 6 views
0

私はModel1とModel2を持っています。has_and_belongs_to_manyです。 Model2のIDのリストが与えられている場合、Model1にどのように関連付けられているかを問い合わせるにはどうすればよいですか?has_and_belongs_to_many - Model1のアイテムを指定します。Model2 idリスト

私は結合を使用する必要がありますが、どのくらい正確ですか?それは多くのものに1だったら、私はこれを行うだろう:

select m1.* from model1 as m1 
    inner join model2 as m2 
    on m1.id = m2.m1_id 
    where m2.id in (?) 
あなたが手動で構築している同じクエリでのRailsでこれを達成するだろう

として ActiveRecordで表現

答えて

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

'PG: :SyntaxError:ERROR: "WHERE"またはそれに近い文法エラー " – Kotaa

+0

sql" SELECT "model1"。* FROM "model1"内部結合モデル2 WHERE "model2"。 "id" IN(1,2,3) – Kotaa

関連する問題