我有两个表,一个是包含不同用户的表,另一个是名为“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();
但是这个查询给我返回了所有由$member_id创建的客户,没有例外。 我的查询有什么问题吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你尝试了以下内容吗:
$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(); }此答案仅在第一和第二个条件(created_by和updated_by)之间应用了
OR条件,并且其结果与第三个条件的AND相结合。