Я пытаюсь понять, как повторить приведенный ниже запрос в Laravel. Я пытаюсь получить самый последний статус из table2
/ t2
и объединить его с нашей основной записью table1
/ t1
select id, created_at, t2.status from table1 t1
left join table2 t2 ON 52.id = (
SELECT MAX(id) from table2
where table2.submission_id = submission_id
) AND t1.id = t2.submission_id
Этот запрос выше работает блестяще, но я не могу понять, как повторить это в «нативном» Laravel -
$query = Table1::query();
$query->join('table2 as t2', function (JoinClause $join) {
$join->selectRaw('MAX(id)')
->where('t2.submission_id', '=', 'submission_id');
}, '=', 't2.id');
Я также пробовал joinSub -
$query->joinSub(function (Builder $query) {
$query
->selectRaw('MAX(id)')
->from('table2 as t2')
->where('t2.submission_id', '=', 'bespoke_submission_id');
}, 't2', 't1.id', '=', 't2.id', 'left');
Однако я не могу добиться желаемого результата! Есть идеи?