嗨,我想在Laravel中的leftJoin或LIMIT 1获得MAX值,我该怎么办?

问题描述 投票:0回答:1
$almacenes = Almacenes::with(['producto'])->
                 leftJoin('albaranes_lineas',function ($k) use ($request){
                     $k->on('almacen.id_producto','=','albaranes_lineas.id_producto');


                 })->where(function ($q) use ($request) {

                $q->where('almacen.id_usuario', $request->usuario);
                $q->where('almacen.id_local', $request->local);
                $q->where('almacen.tipo', $request->tipo);
                $q->whereRaw('HOUR(almacen.created_at) = ?', $request->hora);
                $q->whereDate('almacen.created_at', '=', $request->fecha);
                //$q->where('inventario', 1);


            })->get();

我怎样才能将值限制为“1”?我想获取表“albaranes_lineas”中每行的最后一个字段。

php laravel
1个回答
0
投票
$maxValue = Almacenes::with(['producto'])->
                 leftJoin('albaranes_lineas',function ($k) use ($request){
                     $k->on('almacen.id_producto','=','albaranes_lineas.id_producto');
                     $k->where('albaranes_lineas.id',821);
                 })->max('table_name.column_name');

当您使用max('column_name')时,它返回单个计数值。在这种情况下,$maxValue将保留您的列数。这是laravel中可用的聚合函数。

你不能调用max()->limit(),因为它会像调用->limit()一样整数值,并会抛出错误:

在整数上调用成员函数limit()

但是,如果您希望获得特定条件的最大值,那么您将需要group by子句。

© www.soinside.com 2019 - 2024. All rights reserved.