2017-07-11 18 views
5

मैं शर्त में और सबक्वायरी में स्थिति के भीतर उप क्वेरी लिखना चाहता हूं, मूल क्वेरी फ़ील्ड के साथ जांच कर रहा हूं।लारवेल 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

के साथ जोड़कर अपनी क्वेरी की कोशिश करनी चाहिए '-> toSql()' एसक्यूएल प्रारूप, और चलाने के प्राप्त करने के लिए कि मैन्युअल रूप से 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

अब मूल उपयोगकर्ता आईडी काम कर रहा है लेकिन दूसरा 'जहां' –

+1

@NaseehaSahla, '-> जहां (' award_user.award_id = '। $ Request-> award_id) लागू नहीं कर रहा है;' इसे दूसरे 'जहां' मूल्य 'मान के रूप में उपयोग करें। –

+0

दूसरे स्थान पर जहां कोई चिंता नहीं कर रहा है लेकिन दूसरी जगह में बदलाव न करने की तुलना में काम कर रहा है अभी भी मुझे बताए जाने से काम नहीं कर रहा है –

संबंधित मुद्दे