Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用Laravel和count aggregate的查询生成器时出现错误1140_Mysql_Sql_Laravel - Fatal编程技术网

Mysql 使用Laravel和count aggregate的查询生成器时出现错误1140

Mysql 使用Laravel和count aggregate的查询生成器时出现错误1140,mysql,sql,laravel,Mysql,Sql,Laravel,我想使用Laravel查询生成器执行以下SQL查询: select `source`, `customer_id`, COUNT(id) from `requests` where `source` = "ATC" and `customer_id` = 1234567 我尝试使用以下代码,但无法正常工作: DB::table('requests')->select('source', 'customer_id', DB::raw('COUNT(id)'))->where('sou

我想使用Laravel查询生成器执行以下SQL查询:

select `source`, `customer_id`, COUNT(id) from `requests` where `source` = "ATC" and `customer_id` = 1234567
我尝试使用以下代码,但无法正常工作:

DB::table('requests')->select('source', 'customer_id', DB::raw('COUNT(id)'))->where('source', '=', 'ATC')->where('customer_id', '=', '1234567')->get();
我收到了以下错误:

SQLSTATE[42000]: Syntax error or access violation: 1140 In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'opadidb.requests.source'; this is incompatible with sql_mode=only_full_group_by (SQL: select `source`, `customer_id`, COUNT(id) from `requests` where `source` = ATC and `customer_id` = 1234567)

可以提供帮助吗?

如果不更改查询或mysql设置,则无法按照消息中的说明运行第一个查询

在没有分组依据的聚合查询中,选择列表的表达式1包含非聚合列“opadib.requests.source”

您可以更改mysql设置以仅启用\u FULL\u GROUP\u BY,更多信息

您可以通过在末尾添加GROUPBY子句将查询更改为类似这样的内容,具体取决于您想要实现的结果

如果启用了,那么作为第三个选项,您可以更改database.php文件,使数据库的change strict key从true变为false

聚合函数,如sum、count、min、max、avg当与其他列一起选择时,必须为其中一列使用groupBy子句

您的查询有两列“source”和“customer\u id”,您必须在这两列中都添加一个分组依据:

DB::table('requests')->select('source', 'customer_id', DB::raw('COUNT(id)'))
->where('source', '=', 'ATC')->where('customer_id', '=', '1234567')
->groupBy('source','customer_id')->get();

嗯,在我的情况下,你的问题不起作用。。。我继续收到该错误。请尝试按“customer\u id”和“source”对这两列进行分组。