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 协议》,转载必须注明作者和本文链接
你这样的话,都不涉及 with 了,直接子查询就好了呀