【发布时间】:2020-06-16 14:33:50
【问题描述】:
我有 MySQL 查询(这是工作),例如:
SELECT
project_bills.*,
project_deliveryorder.totalcost,
project_deliveryorder.deliveryorder_number,
project_deliveryorder.deliveryorder_subject,
SUM(project_bills_payment.payment_amount) AS TOTAL
FROM
project_bills
JOIN
project_deliveryorder ON project_bills.id_deliveryorder = project_deliveryorder.id
JOIN
project_bills_payment ON project_bills.id = project_bills_payment.id_bill
GROUP BY
project_bills.id
ORDER BY
project_bills.bill_date, project_bills.id DESC;
我尝试翻译成 Laravel 格式,例如:
DB::table('project_bills')
->join('project_deliveryorder', 'project_bills.id_deliveryorder', '=', 'project_deliveryorder.id')
->join('project_bills_payment', 'project_bills.id', '=', 'project_bills_payment.id_bill')
->select('project_bills.*', 'project_deliveryorder.totalcost', 'project_deliveryorder.deliveryorder_number', 'project_deliveryorder.deliveryorder_subject', DB::raw('SUM(project_bills_payment.payment_amount) AS TOTAL'))
->groupBy('project_bills.id')
->orderBy('project_bills.bill_date', 'DESC')
->orderBy('project_bills.id', 'DESC')
->get();
然后我收到一些错误,例如:
SQLSTATE[42000]:语法错误或访问冲突:1055 'db_tcm.project_bills.id_deliveryorder' 不在 GROUP BY 中
我也读过 Stack Overflow 中的Group by not working - Laravel,那么解决这个问题的最佳方法是什么?
- 更改数据库配置 (
'strict' => true)? - 在 MySQL 上禁用“
ONLY_FULL_GROUP_BY”? - 还是重新构建 Laravel 查询构建器?
【问题讨论】:
标签: php mysql database laravel laravel-5