laravel通过列值获取唯一结果过滤器
我有一个用户表,其中有一列laravel通过列值获取唯一结果过滤器,laravel,Laravel,我有一个用户表,其中有一列成员Id。我需要获取成员身份Id列中没有重复值的行。例如,这是我的表结构 ID Name Membership Id 1 xxx 123 2 xxx 124 3 xxx 124 4 xxx 125 在输出中,我想跳过成员身份Id有重复值的行,只想获取最后一行,所以输出应该是上面示例中的第1、3、4行 MyModel::distinct()->get(['column_name']); 给你 User::dis
成员Id
。我需要获取成员身份Id
列中没有重复值的行。例如,这是我的表结构
ID Name Membership Id
1 xxx 123
2 xxx 124
3 xxx 124
4 xxx 125
在输出中,我想跳过成员身份Id有重复值的行,只想获取最后一行,所以输出应该是上面示例中的第1、3、4行
MyModel::distinct()->get(['column_name']);
给你
User::distinct()->get(['Membership Id']);
通过雄辩
User::select('Membership_Id')->distinct()->get();
Vie db立面
DB::table('users')->select('Membership_Id')->distinct()->get();
使用子查询联接:
$join=User::select('membership_id',DB::raw('max(id)id'))
->groupBy(“成员身份”);
$sql='('.$join->toSql()')作为最新版本';
$users=User::join(DB::raw($sql),function($join){
$join->on('users.membership\u id'、'latest.membership\u id')
->on('users.id','latest.id');
})->get();
在Laravel 5.6.17中,您可以使用:
$join=User::select('membership_id',DB::raw('max(id)id'))
->groupBy(“成员身份”);
$users=User::joinSub($join,'latest',函数($join){
$join->on('users.membership\u id'、'latest.membership\u id')
->on('users.id','latest.id');
})->get();
我不知道laravel是如何工作的,但在SQL中可以使用“Distinct”关键字。laravel也有Distinct关键字,但我不知道如何仅用于一列,但此查询将返回成员身份Id,我想要所有表值我认为您没有发布整个响应