Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

noblemfd's avatar

How to convert MYSQL Query to Laravel Eloquent Query

I have this query in MYSQL:

select hr_employees.id,  hr_employees.company_id, hr_employees.department_id, hr_employees.employee_code, hr_employees.first_name, hr_employees.last_name, hr_employees.hr_status,
hr_departments.dept_code, hr_departments.dept_name, approval_awaiting.appraisal_identity_id, approval_awaiting.is_approved
FROM hr_employees
LEFT JOIN approval_awaiting ON 
    hr_employees.employee_code = approval_awaiting.employee_code
LEFT JOIN hr_departments ON 
    hr_departments.id = hr_employees.department_id
WHERE 
        hr_employees.hr_status = 0
ORDER BY 
    hr_employees.employee_code;

How do I convert it to Laravel Eloquent Query?

Thanks

0 likes
1 reply
jlrdw's avatar
jlrdw
Best Answer
Level 75

If it works, why not use as is? See https://laracasts.com/discuss/channels/laravel/sql-native-to-query-builder

But basically a eloquent query is something like:

$quy = Powner::query()->leftJoin('dc_pets', 'dc_powners.ownerid', '=', 'dc_pets.ownerid')
                ->select('dc_powners.ownerid', 'dc_powners.oname')
                ->selectRaw('count(dc_pets.petid) as countOfPets')
                ->groupby('dc_powners.ownerid')
                ->orderby('dc_powners.oname')
                ->get();

Results basically give:

ownerid, oname, countOfPets

Like:

5|Bob|3
4|Greg|9
2|Rob|1

Just use some trial and error to work it up. And there is no "convert" as such, you rewrite using query builder syntax.

1 like

Please or to participate in this conversation.