SQL Postgre 在获取相同的多条数据时显示 1 个数据以及如何实现 laravel 查询

SQL Postgre to show 1 data if get same some multiple data and how to implement to laravel query

我想问一下 postgresql 中的 sql,我从 join with 3 table 得到了数据,我得到了结果,但是我得到了像这张图片这样的多个数据 result

这是我在 postgresqlsql

中的代码
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条数据不显示多个相同数据的问题。感谢你们对我的帮助。上帝保佑你

使用distinct()

$data = DB::table('test')->[your query builder]->distinct()->get();

Laravel Query Builder Docs

稍作改动,使其与您的查询构建器相关