7

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

没有 'have' 子句的 'balance' 值可以正常工作。然而,在添加 'have' 子句时,结果表不显示任何行。有没有人有任何想法?

提前致谢!

4

1 回答 1

30

最终切换到 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();
于 2013-06-14T01:37:05.293 回答