将 sql 转换为 Laravel 查询生成器 ->where('b.seq','=',DB::raw('select max(seq) from sells_2020 where pa_no=a.pa_no'))

convert sql to Laravel Query Builder ->where('b.seq','=',DB::raw('select max(seq) from sells_2020 where pa_no=a.pa_no'))

我有 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 中工作正常,但在查询生成器中不工作 我试试这个,

->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')

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

我认为您只需像在 raw sql 中那样添加括号,以及 orderBy 以小 'o'.

开头

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

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