我有 2 個表,一個有不同的用戶,第二個表是一個名為“factures”的發票表,有一個外鍵 userid,我稱之為 client_id,我想得到的是某個管理員創建的客戶數量誰還沒有發票,這是我嘗試過的:
$clients = User::select('id')
->where([['created_by',$membre_id],['role','Client']])
->orWhere([['updated_by',$membre_id],['role','Client']])
->whereNotExists(function($query)
{
$query->select(DB::raw('client_id'))
->from('factures')
->where('created_by',$member_id);
})->get();
但是這個查詢給了我所有的客戶 created_by $member_id 無一例外。我的查詢有什么問題?
uj5u.com熱心網友回復:
您是否嘗試過以下操作:
$clients = User::select('id')
->where(function($query) use($member_id){
$query->where([['created_by',$membre_id],['role','Client']])
->orWhere([['updated_by',$membre_id],['role','Client']])
})
->whereNotExists(function($query) use($member_id){
$query->select(DB::raw('client_id'))
->from('factures')
->where('created_by',$member_id);
})
->get();
}
該答案OR僅在前兩個條件(created_by 和 updated_by)之間應用了該條件,其結果AND與第三個條件一致。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411081.html
標籤:
上一篇:驗證規則,三個欄位之一是必需的
