如何从一个表中选择除外部表中的值以外的所有值?

omtl5h9j  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(402)

我有三张table: tbl_borrower, tbl_clienttbl_guarantor ```
tbl_Client:
id|name|address|email|

tbl_Guarantor:
id|clientid(fk)|Guaranteed_date|borrower_id(fk from borrower table)

我想检索client表的所有值,除了在的控制器中的担保人表中存在的值 `Laravel 5.5` .
332nm8kg

332nm8kg1#

试试这个:

DB::table('tbl_Client')
      ->groupBy('tbl_Client.id')                           
      ->leftjoin('tbl_Guarantor', 'tbl_Client.id', '=', 'tbl_Guarantor.clientid')                           
      ->get([
           'tbl_Client.*'
       ]);
bvn4nwqk

bvn4nwqk2#

一旦你建立了模型和关系,你就应该:

Client::doesntHave('guarantor')->get()

https://laravel.com/docs/5.6/eloquent-relationships#querying-关系缺失

rfbsl7qr

rfbsl7qr3#

如果您使用的是查询生成器,它将是:

$clients = DB::table('tbl_clients')
        ->join('tbl_guarantor', 'tbl_clients.id', '=', 'tbl_guarantor.clientid')
        ->select('tbl_clients.*')
        ->whereNull('tbl_guarantor.clientid')
        ->get();

https://laravel.com/docs/5.5/queries
前提是使用左连接并基于此答案在第二个表id上测试null。https://stackoverflow.com/a/4076157/3585500

相关问题