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

时间:2017-06-15 18:46:14

标签: php mysql sql 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
<\ n>在Laravel:

$status_report = DB::select("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");

可能出现的错误是什么?

我收到以下错误:

SQLSTATE[42000]: Syntax error or access violation: 1055 'maitree.customers.customer_name' isn't in GROUP BY (SQL: 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 services.id)

2 个答案:

答案 0 :(得分:0)

您需要使用DB::raw来包装原始SQL。

$status_report = DB::select(DB::raw("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"));

答案 1 :(得分:0)

可能是SQL_MODE,请更改连接&#34; config / database.php&#34; :

  

严格=&gt;假

希望这会对你有所帮助。