我正在学习join
个关联表,并一起查询select
和group
。假设我有以下数据库:
订单
#has_many :items
id , title , description
产品:
#belongs_to :order
#belongs_to :product
id , order_id , name , product_id , cost
现在我想列出所有订单的标题,其中包含来自Item表的order_id总数。 例如:
Order_title_1 => 5 (count of order_id )
我尝试了这个查询,但却出错:我知道这不正确
Item.joins(:orders).select("orders.id, orders.title, SUM(items.order_id) as total").group("order_id")
答案 0 :(得分:1)
当你在postgresql中时,SELECT
子句中的列必须通过子句存在于组中,但聚合中使用的列除外功能。但在你的情况下,事实并非如此。尝试将代码编写为:
Item.joins(:order)
.select("orders.id, orders.title, SUM(items.order_id) as total")
.group("orders.id, orders.title")