Php 获取连接多个表时的计数

Php 获取连接多个表时的计数,php,laravel,laravel-5,eloquent,laravel-query-builder,Php,Laravel,Laravel 5,Eloquent,Laravel Query Builder,我有3个名为user、group和user\u has\u group的表。我用雄辩的语言加入这些表格。一切都很好,但我需要更多的东西。我需要弄清楚哪个组有多少用户。以下是我使用的I代码: $result = UserHasGroup ::join('group', 'user_has_group.group_id', '=', 'group.id') ->join('user', 'group.created_by', '=

我有3个名为user、group和user\u has\u group的表。我用雄辩的语言加入这些表格。一切都很好,但我需要更多的东西。我需要弄清楚哪个组有多少用户。以下是我使用的I代码:

$result = UserHasGroup
                ::join('group', 'user_has_group.group_id', '=', 'group.id')
                ->join('user', 'group.created_by', '=', 'user.id')
                ->where('user_has_group.user_id', '=', $user -> id)
                ->select("user.name as created_by",
                    'group.created_at',
                    'user_has_group.user_id',
                    'group.name as group_name')
                ->getQuery()
                ->get();
以下是回应:

{
    "successful": [
        {
            "created_by": "TUSHAR13",
            "created_at": "2018-05-11 18:04:38",
            "user_id": "5",
            "group_name": "DSGJA"
        },
        {
            "created_by": "TUSHAR13",
            "created_at": "2018-05-11 18:10:17",
            "user_id": "5",
            "group_name": "V76OL"
        },
        {
            "created_by": "TUSHAR13",
            "created_at": "2018-05-10 00:00:00",
            "user_id": "5",
            "group_name": "qwerr"
        }
    ]
}
现在我不明白在哪里添加groupby和count查询。我需要帮助

$result = UserHasGroup
                ::join('group', 'user_has_group.group_id', '=', 'group.id')
                ->join('user', 'group.created_by', '=', 'user.id')
                ->select("user.name as created_by",
                    'group.created_at',
                    'user_has_group.user_id',
                    'group.name as group_name', DB::raw('count(*) as total'))
                ->groupBy('user_id')
                ->getQuery()
                ->get();
您必须在
select()
中使用
DB::raw('Count(*'))
,然后使用group by user\u id


希望这有帮助。

它给了我另一个错误:“SQLSTATE[42000]:语法错误或访问冲突:1055'tushuxem\u fine\u system.user.name'不在GROUP BY中(SQL:选择
用户
名称
作为
创建人
在创建,
用户拥有
用户id,
名称作为
,计数(*)从
user\u拥有
group
internal join
group
on
user\u拥有
group\u id
=
group
id
内部连接
user
on
创建人
user
id
其中
user\u拥有
user\u组
ser_id
)“关闭严格的mode@SHAHMDMONIRULISLAM关闭严格模式。它在工作,但它给了我错误的答案。qwerr组应该有2个成员。但它向我显示:
{“创建人”:“TUSHAR13”,“创建地点”:“2018-05-10 00:00:00”,“用户id”:“5”,“组名”:“qwerr”,“总计”:“1”}
@shahmdmmonirulislam每个组中只有一个用户