Как я могу написать этот необработанный запрос MySQL слева, используя Eloquent Laravel? - PullRequest
0 голосов
/ 17 января 2019

Я конвертирую свое веб-приложение в среду Laravel, но у меня возникла конкретная проблема при попытке написать конкретный необработанный SQL-запрос в Eloquent Laravel.

Вот запрос:

Что я пробовал до сих пор:

$cp = DB::table('career_progression')
->select('staff_id', DB::raw('MAX(cpEffectiveDate) as max_date'))
->groupBy('staff_id');

$staffs = DB::table('staff')
        ->leftJoinSub($cp, 'cp', function ($join) {
             $join->on('staff.id', '=', 'cp.staff_id');
        })
->select(DB::raw('staff.firstname, staff.middlename, staff.lastname, staff.state, staff.lga, cp.cpEffectiveDate, cp.designation, cp.grade, 
        cp.step'));

Вот чего я хочу достичь:

SELECT s.firstname, s.middlename, s.lastname, s.state, s.lga, cp.cpEffectiveDate,cp.designation, cp.grade, cp.step FROM staff s LEFT JOIN career_progression cp ON cp.staff_id = s.id JOIN (SELECT a.staff_id, MAX(a.cpEffectiveDate) AS max_date FROM career_progression a GROUP BY a.staff_id) x ON x.staff_id = cp.staff_id AND x.max_date = cp.cpEffectiveDate

Любая подсказка / помощь будет высоко ценится, спасибо.

...