Laravel 5在另一个and子句中嵌套or或子句

时间:2018-10-22 10:57:37

标签: laravel-5 eloquent laravel-query-builder

我想运行此查询,但是使用 laravel查询生成器,我无法使用orWhere和where子句获得确切的结果

SELECT * FROM lectures WHERE school=6 AND ( (period=3 AND class_section=3) OR (period=4 AND teacher=17) )

那么我该如何使用laravel查询生成器来做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要使用Parameter Grouping将查询翻译为查询生成器表单

DB::table('lectures)
    ->where('school', '=', 6)
    ->where(function ($query) {
        $query->where(function ($query) {
            $query->where('period', '=', 3)
                  ->where('class_section', '=', 3)
        })->orWhere(function ($query) {
            $query->where('period', '=', 4)
                  ->where('class_section', '=', 17)
        });
    })
    ->get();