相关疑难解决方法(0)

Laravel:语法错误或访问冲突:1055错误

我想在Same Query中使用WhereIn和Groupby来获取Result.

我试过这个:

$loadids=explode("#@*",$reciptdet->loading_id);
$loadingdatas=DB::table('loading')->groupBy('vehicle_no')->whereIn('id',$loadids)->get();
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

SQLSTATE [42000]:语法错误或访问冲突:1055'sbrtpt.loading.id'不在GROUP BY中(SQL:select*from loading其中id为(14,15,16)group by vehicle_no)

php laravel laravel-5

51
推荐指数
10
解决办法
6万
查看次数

A.* 不在 Laravel 查询生成器上带有左连接的 GROUP BY 中

   $search_alls=
    DB::table('a16s as A')
    ->select('A.id')
    // ->select('A.*')
    ->addSelect(DB::raw('SUM(CASE WHEN B.approve = 1 ELSE 0 END) as Yshow'))
    ->leftjoin('a16s_likes as B', function($join) {
        $join->on('A.id', '=', 'B.p_id');
        })
    ->groupBy('A.id')
    ->get();
Run Code Online (Sandbox Code Playgroud)

当我使用上面的 select('A.id') 时效果很好。

但是当我使用 select('A.*') 选择所有 A 列时,出现错误

SQLSTATE[42000]: Syntax error or access violation: 1055 'employee.A.name' isn't in GROUP BY 
Run Code Online (Sandbox Code Playgroud)

PS:employee是我的数据库名称A表上的列是

id name ....
1  john
2  mary
3  susan
Run Code Online (Sandbox Code Playgroud)

如何通过 leftjoin 选择所有列?A.id 列与 B.p_id 列是一对多关系。

mysql group-by left-join laravel laravel-query-builder

2
推荐指数
1
解决办法
1万
查看次数

使用查询生成器laravel时sql不在GROUP BY中

在此处输入图片说明 我想根据从表投票中获取的product_id来获取多少数据。在laravel上,此查询无法正常运行,但是当我在mysql中尝试运行时,它运行正常吗,是否还有其他解决方案?

这是通过mysql成功执行的查询:

select count(product_id) as total, `v`.*, `p`.`name` from `votes` as `v` left join `products` as `p` on `p`.`id` = (select p1.id from products as p1 where v.product_id = p1.id ) group by v.product_id
Run Code Online (Sandbox Code Playgroud)

结果: 在此处输入图片说明

这是我使用查询生成器使用的关于laravel的查询:

$count = DB::table('votes as v')->leftJoin('products as p',function($join){
  $join->on('p.id','=',DB::raw('(select p1.id from products as p1 where v.product_id = p1.id )'));
})->select(DB::raw('count(*) as total'),'v.*','p.name')->groupBy('v.product_id')->get();
dd($count);
Run Code Online (Sandbox Code Playgroud)

我得到了这个错误:

“SQLSTATE [42000]:语法错误或访问冲突:1055 'lookbubbledrink.v.id'不是在GROUP BY(SQL:SELECT COUNT( )为总,vpnamevotes作为v左加入productsp上 …

mysql laravel

2
推荐指数
1
解决办法
1593
查看次数

Laravel groupBy无法正常工作抛出错误语法错误或访问冲突:1055

我在其他问题上尝试过解决方案,但这并没有解决我的问题.我严格要求真实虚假.使用的模式

        'modes' => [

            'STRICT_TRANS_TABLES',
            'NO_ZERO_IN_DATE',
            'NO_ZERO_DATE',
            'ERROR_FOR_DIVISION_BY_ZERO',
            'NO_AUTO_CREATE_USER',
            'NO_ENGINE_SUBSTITUTION'
        ] 
Run Code Online (Sandbox Code Playgroud)

同样.但我得到了同样的错误.

$orders = Order::orderBy('id', 'desc')->groupBy('order_id')->get();
        dd($orders);
Run Code Online (Sandbox Code Playgroud)

这会引发错误语法错误或访问冲突:1055'my_db.orders.id'不在GROUP BY中(SQL:按ordersorder_id顺序选择*来自iddesc)

(我使用的是Laravel 5.6)

php mysql laravel-5.6

1
推荐指数
1
解决办法
2324
查看次数

laravel 5.5 group by 不起作用

我正在尝试获取一些数据,但我只是收到此错误

SQLSTATE[42000]:语法错误或访问冲突:1055 'ms_mascotas.ms_razas.id' 不在 GROUP BY 中(SQL:select ms_razas.id, ms_razas.nombre, ms_mascotas.raza_id, ms_mascotas.idfrom ms_mascotasinner join ms_razason ms_razas.id= ms_mascotas.raza_idwhere ms_razas.tipo_animal_id= 1 group by ms_mascotas.raza_id)”

我的查询是这样的

$data=Mascota::select("ms_razas.id","ms_razas.nombre","ms_mascotas.raza_id","ms_mascotas.id")
       ->join("ms_razas","ms_razas.id","=","ms_mascotas.raza_id")
       ->where("ms_razas.tipo_animal_id",$id)
       ->groupBy("ms_mascotas.raza_id")
       ->get();
Run Code Online (Sandbox Code Playgroud)

我一直在阅读这个错误,它与数据库文件中的严格模式有关,严格默认设置为false,我该怎么办?

php group-by laravel eloquent

0
推荐指数
1
解决办法
6475
查看次数