@brud
специально для самых нежных и трепетных

Как в Eloquent через Query Builder сделать сложный on при join'е?

Имеется работающий на 100% запрос, интересует, как перенести эту его часть в Query Builder

left join tbl2 
    on tbl1.parent_id= tbl2.parent_id 
    and (
        isnull(tbl2.id) 
        or (
            tbl2.time = '1970-01-01 00:00:00' 
            and tbl2.cmd in (0, 1) 
        )
    )


конструкция такого вида не работает:

->leftJoin($rawTrades, function($leftJoin) {
    $leftJoin
        ->on("tbl1.parent_id", '=', 'tbl2.parent_id')
        ->on(function($query){
            $query->whereNull('tbl2.id')
                ->orWhere(function($query){
                    $query
                        ->where('tbl2.time', '=', '1970-01-01 00:00:00')
                        ->whereIn("tbl2.cmd",  [0,1]);
                 });
        });
})


UPD: вопрос снят - получилось убрать одно условие, и можно обойтись без closure в on, если кому-то вдруг понадобится - на текущий момент это невозможно.
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы