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

时间:2018-09-05 20:00:59

标签: php mysql laravel laravel-5

我有三个表:tbl_borrower, tbl_clienttbl_guarantor

tbl_Client:
    id|name|address|email|

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

我想检索客户表的所有值,但Laravel 5.5控制器中担保人表中的值除外。

3 个答案:

答案 0 :(得分:3)

一旦建立了模型和关系,就应该这样做:

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

https://laravel.com/docs/5.6/eloquent-relationships#querying-relationship-absence

答案 1 :(得分:0)

如果您使用的是查询生成器,则为:

 $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

答案 2 :(得分:0)

尝试一下:

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