将sql转换为Laravel查询生成器-> where'b.seq','=',DB :: raw'从sells_2020中选择maxseq,其中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')

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

解决方法

我认为您只需要像在原始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();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...