0

我进行了很多研究,但找不到我的问题的答案。我的 Rails 应用程序有以下设置:

class Group < ActiveRecord::Base
  has_many :people
  # ...
end

class City < ActiveRecord::Base
  has_many :people
  # ...
end

class Person < ActiveRecord::Base
  belongs_to :city
  belongs_to :group
  # ...
end

人们有:role0的列1

我想获得所有至少有一个人和role == 0一个人使用role == 1.

任何想法?顺便说一句,我正在使用 Postgres。

4

1 回答 1

1

这是我刚刚在我的 SQLite3 数据库上测试的一个查询(我相信也应该在 Postgres 上工作):

 Group.select("groups.*").joins("LEFT JOIN people on groups.id = people.group_id").where("people.role==0 OR people.role==1").group("id")

在这里,我假设您已经在人员迁移中添加了外键 group_id。希望这可以帮助。

于 2012-07-27T22:22:52.637 回答