sql - SQL Postgre 如果获得相同的多个数据,则显示 1 个数据以及如何实现 laravel 查询
问题描述
我想问一下postgresql中的sql,我从加入3个表中得到数据,我得到了结果,但我得到了多个数据,比如这个图像 结果
这里是我在 postgresql 中的 sql 代码
select users.* from users inner join model_has_roles on model_has_roles.model_id = users.id
left join roles on roles.id = model_has_roles.role_id where roles.name not in ('job-seeker') order by users.name asc
如何修复这个查询,我得到了多个数据,只有 1 个数据要显示。
我希望这个 sql 实现到 laravel 查询,现在我的代码在这里
public function getAccountList(){
$req = app(Request::class);
// $getAccount = User::query();
$getAccount = User::join('model_has_roles', function($join) {
$join->on('users.id', '=', 'model_has_roles.model_id');
})->leftJoin('roles', function($join){
$join->on('model_has_roles.role_id', '=', 'roles.id');
});
$getAccount->whereNotIn('roles.name', ['job-seeker']);
if ($q = $req->query('q')) {
$searchTerm = trim(strtolower($q));
$getAccount->whereRaw(
'LOWER(users.name) like (?) or LOWER(users.email) like (?)',
["%{$searchTerm}%", "%{$searchTerm}%"]
);
}
// $getAccount->get()->unique('name');
$getAccount->select(['users.*']);
$paginator = $this->pagination($getAccount);
return $this->paginate($paginator, new UserTransformer);
}
如何修复查询只有 1 个数据以显示不多个相同的数据。感谢你们对我的帮助。上帝祝福你
解决方案
使用不同的()
$data = DB::table('test')->[your query builder]->distinct()->get();
只需稍作更改以使其与您的查询生成器相关
推荐阅读
- javascript - ExpressJS - 使路由只能从内部重定向访问
- react-native - 如何在 React Native 中自动停止快速刷新重置路由到 initialRoute
- reactjs - 在卸载时提交 Formik 表单
- javascript - 在 ASP.NET MVC 应用程序中更新购物车和数据库中的数量和总计
- flutter - 导航后流生成器未更新
- c# - 在asp .net webforms c#中生成插入行值的pdf
- python - 多处理情况下读取方法的意外行为
- php - 是否可以在 YII2 的 DetailView 小部件中添加另一列?
- ios - Firebase 和 iOS 14 > 动态链接跟踪和活动是否会继续有效?
- swiftui - SwiftUI 在列表下方添加视图