微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐