【问题标题】:convert sql to Laravel Query Builder ->where('b.seq','=',DB::raw('select max(seq) from sells_2020 where pa_no=a.pa_no'))将 sql 转换为 Laravel 查询生成器 ->where('b.seq','=',DB::raw('select max(seq) from sells_2020 where pa_no=a.pa_no'))
【发布时间】:2021-02-08 12:17:05
【问题描述】:

我有 sql 查询,它在原始 sql 中按预期工作,但在查询生成器中没有

 where  a.price = '399' and 
              b.seq=(select max(seq) from sells_2020 where pa_no=a.pa_no) 
              order by  a.pa_no

这在 sql 中可以正常工作,但在 Query builder 中不行 我试试这个,

->where('a.price',399)
  ->where('b.seq','=',DB::raw('select max(seq) from sells_2020 where pa_no=a.pa_no'))
               ->OrderBy('a.pa_no')

那么如何将其转换为查询生成器?

【问题讨论】:

    标签: sql laravel laravel-query-builder


    【解决方案1】:

    我认为你只需要像在原始 sql 中那样添加括号,然后 orderBy 以小“o”开头。

    现在你内部的原始 sql 查询应该返回一个结果:

    ->where('a.price',399)
      ->where('b.seq','=',DB::raw('(select max(seq) from sells_2020 where pa_no=a.pa_no)'))
                   ->orderBy('a.pa_no')->get();
    

    【讨论】:

      猜你喜欢
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 2018-12-26
      • 1970-01-01
      • 2021-08-07
      • 2020-06-10
      • 1970-01-01
      相关资源
      最近更新 更多