如何在laravel少数联接和mysql查询MAX

时间:2020-01-17 19:01:30

标签: php mysql laravel laravel-5 eloquent

大家好 我一直在尝试整天解决数据库中收到的行重复的问题 我的任务是连接4个表,分别为用户,付款,反馈和错误 在添加最后一个表之前,代码可以正常工作 加入最后一张桌子后,出现了很多重复 我将为您提供有益的建议或帮助 下面是代码

$users = $this->DB()->table('users')
            ->leftJoin('portmone', 'users.id', '=', 'portmone.user_id')
            ->leftJoin('callback_users', 'users.id', '=', 'callback_users.parent_id')
            ->leftJoin('users_ercodes', 'users.id', '=', 'users_ercodes.user_id')
            ->select(DB::raw("users.id, users.fio, users.email, users.phone, max(portmone.created_at) as created_at, MAX(users_ercodes.ercode) as ercode, MAX(callback_users.date) as date, portmone.user_id as user_id, portmone.status as status"))
            ->whereNotIn('users.id', ['portmone.user_id'])
            ->where('portmone.status', 0)
            ->groupBy(
                'portmone.user_id',
                'portmone.created_at',
                'users.id',
                'users.fio',
                'users.email',
                'users.phone',
                'callback_users.date',
                'users_ercodes.ercode',
                'portmone.status'
            )
            ->orderBy('date')
            ->distinct()
            ->paginate(20);

0 个答案:

没有答案