繁体   English   中英

Laravel 5查询生成器,复杂的联接(条件AND(条件OR条件))

[英]Laravel 5 query builder, complicated join (condition AND (condition OR condition))

我需要在Laravel的查询生成器中重现以下查询:

select * from table LEFT JOIN table_b ON `condition` AND (`condition` OR `condition`)

我知道您可以where语句中执行复杂的操作:

Model::where(function ($query) {
  return $query->where("field","value")->orWhere("field","value");
})->where("field","value")->get();

而且我知道您可以on语句进行半复杂化:

->leftJoin('table', function ($join) {
  $join->on("field","=","field_b")
    ->on("field_a","=","field_c");
})

但是我需要on语句中包含condition AND (condition OR condition) 如果不执行DB::raw()或等效方法,这可能吗?

用这个:

->leftJoin('table', function ($join) {
    $join->on("field","=","field_b")
        ->on(function($join) {
            $join->on("field_a","=","field_c")
                ->orOn("field_d","=","field_e");
        });
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM