Sql 当条件依赖于关系属性时,如何搜索模型
我有两种型号Sql 当条件依赖于关系属性时,如何搜索模型,sql,ruby-on-rails-3,postgresql,relational-database,where,Sql,Ruby On Rails 3,Postgresql,Relational Database,Where,我有两种型号 class User has_many :cars end class Car belongs_to :user end 我可以做User.where(…)并测试任何用户属性 如何测试关系的属性? 例如,我想执行“获取user.car.color=green的所有用户”?或者“让所有拥有两辆以上汽车的用户”使用: 对于第二个问题: User.joins(:cars).group('users.id HAVING count(cars.id) > 2') 把它们放在一起:
class User
has_many :cars
end
class Car
belongs_to :user
end
我可以做User.where(…)
并测试任何用户属性
如何测试关系的属性?
例如,我想执行“获取user.car.color=green的所有用户”
?或者“让所有拥有两辆以上汽车的用户”使用:
对于第二个问题:
User.joins(:cars).group('users.id HAVING count(cars.id) > 2')
把它们放在一起:
User.joins(:cars)
.group('users.id HAVING count(cars.id) > 2')
.where('cars.color' => 'green')
另请参见:使用:
对于第二个问题:
User.joins(:cars).group('users.id HAVING count(cars.id) > 2')
把它们放在一起:
User.joins(:cars)
.group('users.id HAVING count(cars.id) > 2')
.where('cars.color' => 'green')
另请参见:类似的操作应该可以:
User.include(:cars).where("cars.color" => "green")
像这样的方法应该会奏效:
User.include(:cars).where("cars.color" => "green")
我怎么计算汽车的数量<代码>何处('COUNT(cars)>2')
不起作用如果你加上,.where('cars.color'=>'green'),那么这就是最好的答案我如何计算汽车数量<代码>其中('COUNT(cars)>2')不起作用如果你添加,.where('cars.color'=>'green'),那么这就是最好的答案根据你下面的附加问题,你可以这样做:User.joins(:cars)。选择(“users.id,users.first\u name,users.etc,COUNT(cars.id)”。其中(“cars.color”=>“green”)。组(“users.id,users.first\u name,users.etc”)。have(“count(cars.id)>2”)
根据下面的附加问题,您可以这样做:User.joins(:cars)。选择(“users.id,users.first\u name,users.etc,count(cars.id)”)。其中(“cars.color”=>“green”).group(“users.id,users.first\u name,users.etc”)。have(“count(cars.id)>2”)