为什么我不能运行此查询?

时间:2019-01-30 19:33:44

标签: mysql laravel eloquent

我正在尝试运行此查询

$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(created_at, “%间 - %D-%Y”))作为dateTaken来自test_answers,用户名= 2 GROUP BY(test_id))

我试图在PHPMyAdmin中和它的工作。 有人可以告诉我为什么使用Eloquent无法正常工作吗?

谢谢

1 个答案:

答案 0 :(得分:3)

在严格模式下不起作用的原因是,您没有在查询中指定要使用哪个created_at。如果您使用的是GROUP BY,并且选择的列未分组或未汇总,则可能无法收到正确的数据。

您在test_answers中有多行,但是MySQL不知道您关心的是created_at。您可以通过简单地告诉MySQL返回哪个created_at来解决此问题,例如MAX(created_at)选择最新的,或者MIN(created_at)选择最早的。