带有单独查询的 ActiveRecord WHERE IN——合并为单个 INNER JOIN 查询
ActiveRecord WHERE IN with a separate query—combine to a single INNER JOIN query
我目前有一个非常复杂的查询(简化)如下所示:
User.where(party_id: [Party.cool_parties.pluck(:id)])
效果很好,但使用 2 个单独的查询访问数据库。我只是想知道如何将它组合成一个查询?以某种方式与临时 table 进行某种内部连接?我不确定如何使用 Rails...
User.where(party_id: Party.cool_parties)
只需传递 assocation/relation ActiveRecord 就会构造一个子查询。
pluck
只应在您实际想要强制查询将数据加载为数组的情况下使用 - 这比您想象的要少得多。
我目前有一个非常复杂的查询(简化)如下所示:
User.where(party_id: [Party.cool_parties.pluck(:id)])
效果很好,但使用 2 个单独的查询访问数据库。我只是想知道如何将它组合成一个查询?以某种方式与临时 table 进行某种内部连接?我不确定如何使用 Rails...
User.where(party_id: Party.cool_parties)
只需传递 assocation/relation ActiveRecord 就会构造一个子查询。
pluck
只应在您实际想要强制查询将数据加载为数组的情况下使用 - 这比您想象的要少得多。