我需要找到所有拥有状态= 1的孩子的所有父母。
如果其中一个孩子不是status = 1;则未选择父级。
class Parent
has_many :children
end
class Child
status = [ 0, 1 ]
end
我已经尝试过了,但是没有用。
Parent.left_outer_joins(:children).where("children.status = ?", 1)
该方法不起作用,因为我仍然可以看到“父级”状态为“子级” = 0
答案 0 :(得分:0)
我认为您需要一个子查询:
Parent.where.not(id: Children.where.not(status: 1).select(:parent_id))
答案 1 :(得分:0)
尝试一下:
Parent.where("id NOT IN (SELECT DISTINCT(parent_id) FROM children WHERE children.status =1)")
希望您会发现这很有帮助!
答案 2 :(得分:-1)
我认为您可以执行以下操作:
consumer