Как выбрать все значения из таблицы, кроме значений, которые находятся в чужой таблице? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть три таблицы: tbl_borrower, tbl_client и tbl_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 голосов
/ 06 сентября 2018

Если вы используете построитель запросов, это будет:

 $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

При условии использования левого соединения и проверки на NULL для идентификатора 2-й таблицы на основе этого ответа. https://stackoverflow.com/a/4076157/3585500

0 голосов
/ 06 сентября 2018

Попробуйте это:

DB::table('tbl_Client')
      ->groupBy('tbl_Client.id')                           
      ->leftjoin('tbl_Guarantor', 'tbl_Client.id', '=', 'tbl_Guarantor.clientid')                           
      ->get([
           'tbl_Client.*'
       ]);
0 голосов
/ 05 сентября 2018

После того, как вы настроили модели и отношения, вы должны просто сделать:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...