Laravel 8 EloquentでwhereNotExists句が正しく使用されない問題は未解決のままです
P粉287726308
2023-09-05 16:08:35
<p>2 つのテーブルがあります。1 つは異なるユーザーを含むテーブルで、もう 1 つは client_id と呼ぶ外部キー userid を持つ「factures」と呼ばれる請求書テーブルです。私が取得したいのは、特定の管理者によって作成され、まだ請求書を持っていない顧客の数です。これは私が試したコードです: </p>
<pre class="brush:php;toolbar:false;">$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('ファクチャ')
->where('created_by',$member_id);
})->get();</pre>
<p>しかし、このクエリは $member_id によって作成されたすべての顧客を例外なく返します。
私の質問に何か問題がありますか? </p>
次のことを試してみましたか:
リーリーこの回答では、最初と 2 番目の条件 (created_by と updated_by) の間の
OR
条件のみが適用され、その結果は 3 番目の条件のAND
と結合されます。