【发布时间】:2019-08-01 02:56:32
【问题描述】:
我有这个功能:
public function readData(){
$TableB1 = \DB::table('users')
->join('group_user', 'users.id', '=', 'group_user.user_id')
->join('groups', 'groups.id', '=', 'group_user.group_id')
->join('meetings', 'users.id', '=', 'meetings.owned_by_id')
->select(
'users.name as name',
'group_user.user_id as id',
'groups.name as groupname',
'meetings.owned_by_id as meetings'
)
->groupBy('users.id')
->get();
我得到这个错误:
当我删除 groupBy 部分时,它可以工作,但是像这样的重复数据
它返回这样的数据:
[{"name":"Mohamed Adel","id":6,"groupname":"Team Mohamed","meetings":6},{"name":"Mohamed Adel","id":6,"groupname":"Team Mohamed","meetings":6},{"name":"Norman Osborn","id":2,"groupname":"Team Mohamed","meetings":2},{"name":"Harry Osborn","id":3,"groupname":"Team Harry","meetings":3}]
谢谢。
【问题讨论】:
-
正是错误告诉您的内容。过于简单化了,如果在select里面,肯定是在group by里面。
-
对不起,我是新人,我不太明白。如何解决这个问题?
-
在标准 SQL 中,您必须为分组中的所有选定字段命名,或者在 select 子句中使用 sum() 或 max() 等聚合函数。
标签: php mysql sql laravel-5 laravel-5.7