2017-08-02 74 views
0

內部查詢我是新來laravel,我想從三個表中檢索數據,因爲用戶輸入3的信息,然後我用它來確定要檢查的行登錄 所以我用這個方式,但不行! 我不知道如何發送變量在SQL利用可變

DB::table('members') 
     ->join(DB::raw('(SELECT FROM members_courses_assign WHERE referenceNumber=>$coursenum,termkey=>$semester) courseA'), function($join) { 
      $join->on('members.externalPersonKey', '=', 'courseA.externalPersonKey'); 
     })->join(DB::raw('(SELECT courses FROM WHERE referenceNumber=>$coursenum,termkey=>$semester) coursecc '), function($join) { 
      $join->on('courseA.referenceNumber', '=', 'coursecc.referenceNumber'); 
     }) 
     ->where(['jobID' => $jobid])->get(); 
+0

什麼是電流輸出?給錯誤? –

回答

0

試試這個:

->where('jobID',$jobid)->get(); 

在這裏,在Laravel Documentation你可以找到所有你需要知道的關於查詢生成器。

0

要傳遞變量內查詢(匿名函數),你必須與use關鍵字把它作爲described in docs

$yourVariable= ""; 
    DB::table('members') 
        ->join(DB::raw('(SELECT FROM members_courses_assign WHERE referenceNumber=>$coursenum,termkey=>$semester) courseA'), function($join) use($yourVariable) { 
         $join->on('members.externalPersonKey', '=', 'courseA.externalPersonKey'); 
        })->join(DB::raw('(SELECT courses FROM WHERE referenceNumber=>$coursenum,termkey=>$semester) coursecc '), function($join) use($yourVariable) { 
         $join->on('courseA.referenceNumber', '=', 'coursecc.referenceNumber'); 
        }) 
        ->where(['jobID' => $jobid])->get(); 
0
DB::table('members') 
    ->join('members_courses_assign', function($join) use ($coursenum, $semester) { 
     $join->on('members.externalPersonKey', '=', 'members_courses_assign.externalPersonKey') 
      ->where('referenceNumber', $coursenum) 
      ->where('termkey', $semester); 
    }) 
    ->join('courses', function($join) use ($coursenum, $semester) { 
     $join->on('members_courses_assign.referenceNumber', '=', 'courses.referenceNumber') 
      ->where('referenceNumber', $coursenum) 
      ->where('termkey', $semester); 
    }) 
    ->where('jobID', $jobid) 
    ->get(); 

你可以參考查詢生成器的高級連接子句here