查找在另一个表中具有正好3个关联记录的所有记录

时间:2015-10-21 06:57:31

标签: sql ruby-on-rails rails-activerecord

我有以下型号

class Price < ActiveRecord::Base
  has_many :line_items
  ...

class AdvancedPriceLineItem < ActiveRecord::Base
  belongs_to :price
  ....

我想查找所有Price个记录,其中只有3个LineItem引用它

如何做到这一点?

非常感谢

2 个答案:

答案 0 :(得分:2)

您可以尝试这种方式进行有效记录

Price.includes(:line_items).group("line_items.price_id").having("count(*) = 3")

答案 1 :(得分:0)

在这里你去..

select * from
price where  id in (select price_id
from LineItem
group by  price_id
having count(*) =3
)