【问题标题】:Converting simple nested select query to Laravel's Eloquent query将简单的嵌套选择查询转换为 Laravel 的 Eloquent 查询
【发布时间】:2018-10-29 13:02:58
【问题描述】:

我有这个查询需要在互联网上以雄辩的形式编写,无法找到我的问题的确切解决方案。

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();

你们能帮我做同样的事情吗?

【问题讨论】:

    标签: php eloquent query-builder laravel-5.7


    【解决方案1】:

    使用这个:

    $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();
    

    【讨论】:

      猜你喜欢
      • 2021-05-27
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2016-04-01
      • 1970-01-01
      • 2020-10-03
      相关资源
      最近更新 更多