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");
});
})
我需要在 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");
});
})