laravel 子查询

释放双眼,带上耳机,听听看~!

public function test(Request $request){    

        $data=$request->all();;

        $where = [];  //用于外层查询条件

        $whereData = [];  //用于子查询条件

        if(!empty($data[‘device_group_id’])){  //管制区id

            $where[‘b.device_group_id’] = $whereData[‘device_group_id’] = $data[‘device_group_id’];

        }

        if(!empty($data[‘start_time’])){  //开始时间

            $whereData[‘start_time’] = $data[‘start_time’];

        }

        if(!empty($data[‘end_time’])){   //结束时间

            $whereData[‘end_time’] = $data[‘end_time’];

        }

        $data = DB::table(‘vip’. ‘ as a’)

            ->rightJoin(‘gate_role as b’,’a.id’,’=’,’b.vip_id’)   //有门禁权限的才记录

            ->where($where)

            ->whereNotIn(‘a.id’,function ($query) use($whereData){

                $query->from(‘device_group as c’)

                    ->leftJoin(‘device_device_group as d’, ‘c.id’, ‘=’, ‘d.device_group_id’)

                    ->leftJoin(‘device as e’, ‘d.device_id’, ‘=’, ‘e.id’)

                    ->leftJoin(‘visitor as f’, ‘e.mac’, ‘=’, ‘f.mac’)

                    ->where(‘c.id’, $whereData[‘device_group_id’])

                    ->whereBetween(‘f.discern_time’,[$whereData[‘start_time’],$whereData[‘end_time’]])

                    ->select(‘f.vip_id’);

            })

            ->orderBy(‘a.id’, ‘desc’)

            ->get(array(‘a.id’,’a.name’))

            ->map(function($value){

                return (array)$value;

            })->toArray();

        dd($data);

}

文章来源于互联网:laravel 子查询

人已赞赏
PHP学习笔记技术杂烩网站建设

fastadmin 页面修改技巧之三:数据类型兼容

2020-11-17 17:53:19

Linux学习笔记技术杂烩

通过修改代码解决宝塔面板强制绑定手机号

2020-11-22 15:42:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索