使用变量的内部查询

时间:2017-08-02 10:31:23

标签: php sql laravel

我是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();

3 个答案:

答案 0 :(得分:0)

试试这个:

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

Laravel Documentation中,您可以找到有关查询构建器的所有信息。

答案 1 :(得分: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();

答案 2 :(得分: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