Я пытаюсь сгенерировать следующий SQL-запрос, используя Eloquent ORM
select * from table_1
left join table_2 on table_2.id = table_1.id
and table_2.offline <= ?
and (
table_2.online >= ? or table_2.online= ?
)
Несмотря на применение другого подхода, предложенного в stackoverflow и других сайтах, чтобы получить скобку () между предложением AND-0R, я не могу получить желаемый результат. Пример Eloquent запроса:
Capsule::table('table_1')
->leftJoin('table_2', function ($join) use ($from, $until) {
$join->on('table_2.id', '=', 'table_1.id')
->where('table_2.offline', '<=', $until)
->where(function($q) use ($from) {
$q->where('table_2.online', '>=', $from)
->orWhere('table_2.online', '=', '0000-00-00 00:00:00');
});
})
->toSql();
Это то, что я сейчас получаю из приведенного выше запроса Eloquent как raw sql.
select * from `table_1`
left join `table_2`
on `table_2`.`id` = `table_1`.`id`
and `table_2`.`offline` <= ? and ?
Целое условие Advanched, где изменено на?. Любые предложения приветствуются!