Преобразование простого вложенного запроса select в Eloquent запрос Laravel - PullRequest
0 голосов
/ 29 октября 2018

У меня есть этот запрос со мной, который необходимо написать в красноречивой форме в Интернете, и я не могу найти точное решение для моей проблемы.

SELECT 
    query_id, t1.time, result, platform_id
FROM
   query_logs t1
WHERE
    t1.time = (SELECT 
            MAX(time)
        FROM
            query_logs t2
        WHERE
            t1.query_id = t2.query_id);

я попытался написать это, как показано ниже, я использовал query_Logs как модель для моего контроллера:

$bmdata = Query_Logs::select('query_id', 'time','result','platform_id')
              ->where('time', function($q){
              $q->from('query_logs')
               ->selectRaw('max(time)')
               ->where('query_id', '=', 'query_id')
           })
           ->get();

Можете ли вы, ребята, помочь мне с тем же.

1 Ответ

0 голосов
/ 29 октября 2018

Используйте это:

$bmdata = Query_Logs::select('query_id', 'time', 'result', 'platform_id')
    ->where('time', function($q) {
        $q->from('query_logs as t2')
            ->selectRaw('max(time)')
            ->whereColumn('t2.query_id', '=', 'query_logs.query_id');
   })->get();
...