laravel with 怎么写自定义SQL

select `user_id`, `type`, `id` from `user`.`user_logs` where `user_logs`.`user_id` in ('1626e7563a5b11eeaf090242ac140007', '2be717106cb911ee80ca0242ac140007', '35d10d426c9d11eebfe40242ac140007', '86c1df40244c11eebb3f0242ac140007', '9045a71c3b3111ee98240242ac140007', 'a02a1bf4730811ee9dc00242ac140007', 'b04925c25b9611eea42e0242ac140007', 'c32e8dfa3a7411eebe100242ac140007', 'ee93b7a63b3511ee8b680242ac140007', 'eeb1b9be3b3911ee8e490242ac140007') or `user_id` in (select `user_id` from `user`.`user_logs` where `id` in (select min(`id`) as `id` from `user`.`user_logs` where `type` = 'windows' group by `user_id`)) and `type` = 'windows'
$user->when(! blank($request->origin),
            function($query) use ($request) {
                $query->with(['userLog' => function( $query) use ($request) {
                    $query->select('user_id', 'type', 'id')
                        ->from('user.user_logs')
                        ->orWhereIn('user_id', function($query) use ($request) {
                            $query->from('user.user_logs')
                                ->select('user_id')
                                ->whereIn('id', function($query) use ($request)  {
                                    $query->from('user.user_logs')->selectRaw('min(`id`) as `id`')
                                    ->where('type', $request->origin)
                                    ->groupBy('user_id');
                                });
                        })->where('type', $request->origin);
                }]);
            },
            function($query) {
                $query->with('userLog');
            }
        );

这是php代码生成的sql 但是我不想要前面自带的那些id, 这样的话 就限制死了, 能不能关联单不要前面的id , 比如下面sql代码该怎么写

select `user_id`, `type`, `id` from `user`.`user_logs` where `user_logs`. `id` in (select min(`id`) as `id` from `user`.`user_logs` where `type` = 'windows' group by `user_id`)) and `type` = 'windows'

要用关联写不是单表查 还涉及分页 如果独立开没法分页了

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 1

你这样的话,都不涉及 with 了,直接子查询就好了呀

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!