我有三个表: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
控制器中担保人表中的值除外。
答案 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.*'
]);