Rails查询以孩子的总和为条件

时间:2013-03-13 19:55:01

标签: ruby-on-rails ruby database ruby-on-rails-3.2

如何最好在Rails(3.2)中生成一个查询,该查询返回一组父记录,这些记录取决于其子项总和的结果?

例如......

如果和订单有许多

如何选择Items.price(订单)总和大于50.0的所有订单?

2 个答案:

答案 0 :(得分:3)

试试这个:

Order.joins(:items).
      group("items.order_id").
      having("SUM(items.price) > 50")

答案 1 :(得分:0)

试试这个:

Order.joins(:items).where("SUM(items.price) > 50").all

这将对数据库进行单一查询,选择订单商品价格总和大于50的所有订单。

修改

这不起作用。见评论。