Я использую Laravel 7
с PHP 7.2.5
.
Я делаю следующий запрос,
SELECT *, SUM(tr.rating) AS total_ratings
FROM `table_1` AS t
LEFT JOIN table_2 AS tr ON t.id = tr.resource_id
WHERE (t.`name` LIKE '%abc%' OR t.`email` LIKE '%abc%')
GROUP BY t.id
ORDER BY SUM(tr.rating) desc
LIMIT 10
В Laravel,
$getData = $this->table
->select(DB::raw("table1.*, SUM(tr.rating) AS total_ratings"))
->leftJoin('table2 AS tr', "table1.id", '=', 'tr.resource_id')
->where(function ($qry) use ($query) {
$qry->where("name", "LIKE", "%abc%")
->orWhere("email", "LIKE", "%abc%")
})
->groupBy("table1.id")
->orderBy(DB::raw('SUM(tr.rating)'), 'desc')
->limit($limit)
->get();
Но выдает ошибку ниже,
SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1055 'table1.name' отсутствует в GROUP BY ..
Примечание: table1.name
является одним из полей таблицы.
Я попытался отключить режим strict
в конфигурации / базе данных. php в mysql
'strict' => false
Но ошибка все еще не устранена! Кто-нибудь знает, почему это происходит?
Спасибо, все ответы будут оценены.