2017-07-11 13 views
5

私は、条件とサブクエリが条件であった場所の中でサブクエリを書いて、親クエリフィールドでチェックしたいと思っています。次のようにLaravel 5.4サブクエリーでの条件は?

$query = DB::table('users'); 
$query->whereNotIn('users.id', function($query) use ($request) { 
      $query->select('award_user.user_id') 
        ->from('award_user') 
        ->where('award_user.user_id', 'users.id') 
        ->where('award_user.award_id', $request->award_id); 
     }); 

クエリが正常に動作しているが、

->where('award_user.user_id', 'users.id') 

この行、users.idは親クエリから取っていません。手動で番号を入力すると、正しく動作しています。

私の質問に間違いがあります。どうぞお勧めしますか?

+0

あなたが追加することによって、あなたのクエリを試してみてくださいusers.id –

+0

ではない賞idの問題が、問題は、 ' - > toSql()' SQL形式、および実行を取得することphpMyadminまたはMySQLのクエリブラウザで手動で! –

答えて

1

使用whereRawではなくwhere

$query = DB::table('users'); 
$query->whereNotIn('users.id', function($query) use ($request) { 
      $query->select('award_user.user_id') 
        ->from('award_user') 
        ->whereRaw('award_user.user_id', 'users.id') 
        ->whereRaw('award_user.award_id = '.$request->award_id); 
     }); 
+0

親のユーザIDは動作していますが、2番目の 'whereRaw'は –

+1

@NaseehaSahla、' - > whereRaw( 'award_user.award_id ='。$ request-> award_id); 'これを2番目の' whereRaw'値として使用します。 –

+0

2番目にどこのRawがworryではないのですが、2番目の変化はまだ分かりません。 –