php – 使用Eloquent实现group_by并使用Laravel

我在实现group_by和在Laravel中使用Eloquent进行查询时遇到了问题.

这是场景:

orders
 - id
 - qty

deliveries
 - id
 - qty
 - order_id

我想使用联接来显示具有不完整交货的订单以及相应的余额:

Order::left_join('deliveries', 'orders.id', '=', 'deliveries.order_id')
     ->select(array('orders.*'), DB::raw('orders.qty - IFNULL(sum(deliveries.qty),0) AS balance')))
     ->group_by('order_id')
     ->having('balance', '>', 0)
     ->get();

没有’having’子句,’balance’值可以正常工作.但是,在添加’having’子句时,结果表不会显示任何行.有没有人有任何想法?

提前致谢!

解决方法:

结束切换到Laravel 4并执行似乎有效的ff.

Order::leftJoin('deliveries', 'orders.id', '=', 'deliveries.order_id')
 ->select(array('orders.*'), DB::raw('orders.qty - IFNULL(sum(deliveries.qty),0) AS balance')))
 ->groupBy('order_id')
 ->havingRaw('balance > 0')
 ->get();
上一篇:MySQL:让HAVING选择也“null”


下一篇:HAVING子句