单个sql查询计算关联总数

时间:2015-07-09 15:01:35

标签: sql ruby-on-rails postgresql

有两种型号:

class Category < ActiveRecord::Base
  has_and_belongs_to_many :items
end

class Item < ActiveRecord::Base
  has_and_belongs_to_many :categories
end

我有一个包含一些类别ID的数组。有没有办法通过单个SQL查询获取属于我的数组中类别的总项数?

1 个答案:

答案 0 :(得分:1)

首先让我们从数组中获取您想要的类别中的项目:

Item.joins(:categories).where(categories: {id: category_ids})

然后让我们获取每个类别的计数

Item.joins(:categories).where(categories: {id: category_ids}).uniq.count