Raw Query适用于phpmyadmin但不适用于laravel

前端之家收集整理的这篇文章主要介绍了Raw Query适用于phpmyadmin但不适用于laravel前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在PHPmyadmin中编写了一个原始查询,它为我提供了确切的答案.但是当我尝试在Laravel中执行时,同样的查询…我得到了错误

原始查询

SELECT customers.customer_name,customers.voucher_number,services.name,customers.status,sum(carts.amount) FROM  services JOIN customers
        on services.id = customers.service_id JOIN carts on customers.id = carts.customer_id          
        GROUP BY customers.id

在Laravel:

$status_report = DB::select("SELECT customers.customer_name,sum(carts.amount) FROM  services JOIN customers
        on services.id = customers.service_id JOIN carts on customers.id = carts.customer_id         
        GROUP BY customers.id");

什么可能是错误

我收到以下错误

sqlSTATE[42000]: Syntax error or access violation: 1055 'maitree.customers.customer_name' isn't in GROUP BY (sql: SELECT customers.customer_name,sum(carts.amount) FROM services JOIN customers
on services.id = customers.service_id JOIN carts on customers.id = carts.customer_id 
GROUP BY services.id)

解决方法

您需要使用DB :: raw来包装原始sql.

$status_report = DB::select(DB::raw("SELECT customers.customer_name,sum(carts.amount) FROM  services JOIN customers
    on services.id = customers.service_id JOIN carts on customers.id = carts.customer_id         
    GROUP BY customers.id"));

猜你在找的Laravel相关文章