我在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)
答案 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)