[英]Laravel 5 query builder, complicated join (condition AND (condition OR condition))
I need to reproduce the following query in Laravel's query builder: 我需要在Laravel的查询生成器中重现以下查询:
select * from table LEFT JOIN table_b ON `condition` AND (`condition` OR `condition`)
I know you can do complicated where
statements like this: 我知道您可以
where
语句中执行复杂的操作:
Model::where(function ($query) {
return $query->where("field","value")->orWhere("field","value");
})->where("field","value")->get();
And I know you can do semi-complicated on
statements like this: 而且我知道您可以
on
语句进行半复杂化:
->leftJoin('table', function ($join) {
$join->on("field","=","field_b")
->on("field_a","=","field_c");
})
But I need to have condition AND (condition OR condition)
INSIDE an on
statement. 但是我需要
on
语句中包含condition AND (condition OR condition)
。 Is this possible without doing DB::raw()
or equivalent? 如果不执行
DB::raw()
或等效方法,这可能吗?
Use this: 用这个:
->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.