Я использую Laravel 5 в течение недели, и теперь я пришел к тому, что хочу преобразовать все свои существующие необработанные SQL-запросы с помощью Query Builder, но у меня есть проблема.
Когда я запускаю следующий запрос, я получаю это сообщение об ошибке
SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1055 'procurement.pp_proposals.title' не находится в GROUP BY
$proposals = DB::table('tableA')
->join('tableB', 'tableA.id', '=', 'tableB.id')
->leftJoin('tableC', 'tableA.id', '=', 'tableC.id')
->select(DB::raw('tableA.id, title, date_created, date_completed, percent_complete, complete, COALESCE(COUNT(tableC.id), 0) AS total_ids'))
->where([
['tableB.user', '=', Auth::user()->username],
['submitted', '=', '0'],
])
->groupBy('tableA.id')
->orderBy('title', 'asc')
->get();
Это мой необработанный SQL, который отлично работает, поэтому я не понимаю, почему мне нужно GROUP BY для всех дополнительных столбцов.
SELECT tableA.id,
title,
date_created,
date_completed,
percent_complete,
complete,
COALESCE(COUNT(tableC.id), 0) AS 'total_ids'
FROM tableA
INNER JOIN tableB
ON tableA.id = tableB.id
LEFT JOIN tableC
ON tableA.id = tableC.id
WHERE submitted = '0' AND tableB.user = 'user'
GROUP BY tableA.id
ORDER by title ASC