Php 拉威尔集团;以雄辩的关系计数
我知道之前有人问过这个问题:但答案来自2016年,2019年似乎不起作用。我的问题也更简单,因为我只需要一个关系级别 我的问题 A 用户有多个项。 如何通过一个查询查找用户每种Php 拉威尔集团;以雄辩的关系计数,php,laravel,laravel-query-builder,Php,Laravel,Laravel Query Builder,我知道之前有人问过这个问题:但答案来自2016年,2019年似乎不起作用。我的问题也更简单,因为我只需要一个关系级别 我的问题 A 用户有多个项。 如何通过一个查询查找用户每种项目类型的项目数 这就是我所尝试的: 像这样的疑问 User::with(['items' => function($q){ $q->groupBy('type'); }); 返回此错误: 语法错误或访问冲突:选择列表的1055表达式#1 不在GROUP BY子句中,并且包含未聚合的列“items.id
项目类型的项目数
这就是我所尝试的:
像这样的疑问
User::with(['items' => function($q){
$q->groupBy('type');
});
返回此错误:
语法错误或访问冲突:选择列表的1055表达式#1
不在GROUP BY子句中,并且包含未聚合的列“items.id”
功能上不依赖于GROUP BY子句中的列;
这与sql\u mode=only\u full\u group\u by不兼容
我试图通过以下查询修复此错误:
User::with(['items' => function($q){
$q->select('type', \DB::raw('count(*) as total'))
->groupBy('type');
});
但是,这将返回一个用户的集合,其中每个用户的项集合为空
是否可以通过查询中的关系进行分组?出现错误:
您使用$q作为闭包参数,在内部使用$query。有时我也会遇到这样的问题:我必须在关系查询闭包中传递外键才能得到结果:
<?php
$userWithItems = User::with(['items' => function($q){
$q->select('type', \DB::raw('count(*) as total'), 'user_id')
->groupBy('type');
});
有一个错误:
您使用$q作为闭包参数,在内部使用$query。有时我也会遇到这样的问题:我必须在关系查询闭包中传递外键才能得到结果:
<?php
$userWithItems = User::with(['items' => function($q){
$q->select('type', \DB::raw('count(*) as total'), 'user_id')
->groupBy('type');
});
谢谢你发现了错误,我更正了。我想你是对的,当我加上外键时,它会起作用的。但是,我不想通过
禁用仅禁用整个组。不过谢谢你,谢谢你发现了错误,我改正了。我想你是对的,当我加上外键时,它会起作用的。但是,我不想通过
禁用仅禁用整个组。不过还是谢谢你