我想知道是否有办法在单个查询中执行以下操作?
1) non_populated_models = PropertyPerson.select("property_people.id, count('items.recipient_person_id')").joins(:items).group('items.recipient_person_id, property_people.id')
2) populated_models = PropertyPerson.where(id: [non_populated_models])
目前,第一个按查询分组只返回id,并在ProperyPerson对象中计数。假设模型中有15个字段,我不想明确地将它们全部写出来。有没有办法可以在一个查询中执行此操作?
答案 0 :(得分:1)
加入将使用property_people
将查询限制为item
,您将获得attr_reader
的额外列。
people = PropertyPerson.select("property_people.*,
count('items.recipient_person_id') as items_count")
.joins(:items)
.group("property_people.id")
people.first.item_count