laravel eloquent query join SELECT list is not in GROUP BY clause and contains nonaggregated column 'reviews.s.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by code example
Example 1: SELECT list is not in GROUP BY clause and contains nonaggregated column
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Example 2: GROUP BY clause; this is incompati
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Example 3: Expression #1 of ORDER BY contains aggregate function and applies to the result of a non-aggregated query laravel
1. set strict to false in config/databtase.php
2. ->select([
'exam_registrations.id',
'exam_registrations.exam_id',
'exam_registrations.user_id',
DB::raw('sum(submissions.marks) as totalMarksGained')
])
->groupBy('exam_registrations.user_id')
->orderBy('totalMarksGained', 'DESC')