Попробуйте эту строку:
$doctor_daily=TestingType::join('report_doctor_company_daily_test', 'testing_types.id', '=', 'report_doctor_company_daily_test.test_id')
->join('doctor', 'report_doctor_company_daily_test.doctor_id', '=','doctor.id')
->groupBy('testing_types.id')
->select('report_doctor_company_daily_test.test_id','testing_types.testing_name','doctor.first_name','doctor.last_name',DB::raw('SUM( report_doctor_company_daily_test.test_price )')
->get();
Ваша mysql версия 5.7+, поэтому проверьте эту ссылку
MySQL 5.7.5 и вверх реализует обнаружение функциональной зависимости. Если включен режим ONLY_FULL_GROUP_BY SQL (по умолчанию), MySQL отклоняет запросы, для которых список выбора
, поэтому проверьте конфигурацию / базу данных. php, если ваш mysql конфигурация strict
имеет значение true, вам нужно отключить ONLY_FULL_GROUP_BY
, добавить режимы так:
'modes' => [
//'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_AUTO_CREATE_USER',
'NO_ENGINE_SUBSTITUTION'
],
или вы можете просто использовать метод any_value для выбранных столбцов:
PS: any_value не существует в MariaDB
->selectRaw('ANY_VALUE(report_doctor_company_daily_test.test_id),
ANY_VALUE(testing_types.testing_name),
ANY_VALUE(doctor.first_name),
ANY_VALUE(doctor.last_name),
SUM( report_doctor_company_daily_test.test_price')