преобразование SQL в фреймворк Laravel построитель ->запрос, Где('б.сл','=',ДБ::сырье (выбрать максимум(сл) от sells_2020 где pa_no=а.pa_no'))


преобразование SQL в фреймворк Laravel построитель ->запрос, Где('б.сл','=',ДБ::сырье (выбрать максимум(сл) от sells_2020 где pa_no=а.pa_no'))

26.10.2020 11:37:10 Просмотров 42 Источник

у меня есть sql запрос который работает как и ожидалось в raw 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 в фреймворк Laravel построитель ->запрос, Где('б.сл','=',ДБ::сырье (выбрать максимум(сл) от sells_2020 где pa_no=а.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'))

Является ответом!
OMR

26.10.2020 12:26:13

Я думаю, что вам просто нужно добавить скобки, как вы это сделали в raw 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();
Помочь в развитии проекта:
Закрыть X