Как написать Laravel orderBy запрос? - PullRequest
0 голосов
/ 03 марта 2020

Я попробовал это в laravel, но это не сработало.

$doctor_daily=ReportDoctorCompanyDailyTestModal::select('test_id',DB::raw('SUM(test_price) as num'))
                                                       ->join('testing_types','report_doctor_company_daily_test.test_id','=','testing_types.id')
                                                       ->join('doctor','doctor.id','=','report_doctor_company_daily_test.doctor_id')
                                                       ->groupBy('test_id')
                                                       ->get();

Как написать этот запрос MySQL в Laravel 5.7?

SELECT
    report_doctor_company_daily_test.test_id,
    testing_types.testing_name,
    doctor.first_name,
    doctor.last_name,
    SUM( report_doctor_company_daily_test.test_price ) 
FROM
    testing_types
    INNER JOIN report_doctor_company_daily_test ON testing_types.id = report_doctor_company_daily_test.test_id
    INNER JOIN doctor ON report_doctor_company_daily_test.doctor_id = doctor.id 
GROUP BY
    testing_types.id

Ответы [ 3 ]

0 голосов
/ 03 марта 2020

Ваш вопрос не ясен для orderBy. На основании вашего вопроса:

Как написать это MySQL Запрос в Laravel 5.7?

SELECT
    report_doctor_company_daily_test.test_id,
    testing_types.testing_name,
    doctor.first_name,
    doctor.last_name,
    SUM( report_doctor_company_daily_test.test_price )  FROM
    testing_types
    INNER JOIN report_doctor_company_daily_test ON testing_types.id = report_doctor_company_daily_test.test_id
    INNER JOIN doctor ON report_doctor_company_daily_test.doctor_id = doctor.id  GROUP BY
    testing_t
ypes.id

Ответ:

$test = ReportDoctorCompanyDailyTestModal::select(
        'report_doctor_company_daily_test.test_id',
        'testing_types.testing_name',
        'doctor.first_name',
        'doctor.last_name',
        DB::raw('SUM(report_doctor_company_daily_test.test_price)')
    )
    ->join('report_doctor_company_daily_test', 'testing_types.id', '=', 'report_doctor_company_daily_test.test_id')
    ->join('doctor', 'report_doctor_company_daily_test.doctor_id', '=', 'doctor.id')
    ->groupBy('testing_types.id');

dd($test->toSql());

Результат:

select 
     `report_doctor_company_daily_test`.`test_id`, 
     `testing_types`.`testing_name`, 
     `doctor`.`first_name`, 
     `doctor`.`last_name`, 
     SUM(report_doctor_company_daily_test.test_price) 

from 
    `testing_types` 

inner join `report_doctor_company_daily_test` 
    on `testing_types`.`id` = `report_doctor_company_daily_test`.`test_id` 

inner join `doctor` 
    on `report_doctor_company_daily_test`.`doctor_id` = `doctor`.`id` 

group by `testing_types`.`id`
0 голосов
/ 04 марта 2020

use можно использовать ->orderBy(); statment.

в качестве примера;

$doctor_daily=ReportDoctorCompanyDailyTestModal()->orderBy()->get();

Затем вы можете получить данные в порядке возрастания. если вы хотите по убыванию, можете использовать

->orderBy('id','DESC');
0 голосов
/ 03 марта 2020

Просто вы можете использовать его как

->orderBy('id','DESC')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...