我在实现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();