почему я не могу запустить этот запрос? - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь выполнить этот запрос

$tableDate = DB::select('SELECT (DATE_FORMAT(created_at,"%m-%d-%Y")) as 
   dateTaken FROM `test_answers`WHERE user_id= '.$id.' GROUP BY (test_id) 
');

, но он выдаёт мне эту ошибку

SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1055 'mte30.test_answers.created_at 'отсутствует в GROUP BY (SQL: SELECT (DATE_FORMAT (созданный_аталог, "% m-% d-% Y")) в качестве dateTaken FROM test_answers WHERE user_id = 2 GROUP BY (test_id))

Я попробовал это на PHPMyAdmin, и это сработало.Может кто-нибудь сказать мне, почему он не работает с Eloquent?

Спасибо

1 Ответ

0 голосов
/ 30 января 2019

Причина, по которой этот режим не работает в строгом режиме, заключается в том, что вы не указали в запросе, который создал__ для использования.Если вы используете GROUP BY и выбираете столбец, который не сгруппирован или не агрегирован, возможно, вы не получите правильные данные.

У вас есть несколько строк в test_answers, но MySQL не знает, какая строкасоздал_на тебе небезразлично.Вы могли бы исправить это, просто указав MySQL, который создал create_at для возврата, что-то вроде MAX(created_at) для выбора самого последнего или MIN(created_at) для выбора самого старого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...