Как сформировать этот RAW SQL-оператор с помощью Query Builder Laravel - PullRequest
0 голосов
/ 22 мая 2018

Может быть, кто-то здесь может помочь мне сформировать этот оператор RAW SQL с помощью Query Builder от Laravel

**

DB:: select(DB:: raw("select min(heartrate) as hr, max(rotation) as rot, max(calories) as cal 
                                          from trainingsdatas, trainings 
                                          where trainings.user_id = $id 
                                          and trainingsdatas.training_id= trainings.id "));

**

Это одна попытка:

DB::table('trainingsdatas')
->join('trainings','trainings.id','=','trainingsdatas.training_id')
->min('heartrate as hr')
->max('rotation as rot')
->max('calories as cal')
->where('trainings.user_id','=', $id)
->get();

**

Всегда возникает ошибка. Синтаксис кажется неправильным.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Попробуйте это

 $trainings = Trainings::query()->where('user_id', $id)
->join('trainingsdatas', 'trainings.id', '=', 'trainingsdatas.training_id')
->select(DB::raw('MAX(rotation) as rot'), DB::raw('MIN(heartrate) as hr'), DB::raw('MAX(calories) as cal'))
0 голосов
/ 22 мая 2018

Попробуйте использовать select

DB::table('trainingsdatas')
->join('trainings','trainings.id','=','trainingsdatas.training_id')
->selectRaw('min(heartrate) as hr, max(rotation) as rot, max(calories) as cal')
->where('trainings.user_id','=', $id)
->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...