Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » перевести запрос в формат лары » 20.01.2017 19:02:34

from vuz v1
  inner join vuz v1

это как выразить?

\DB::table('wealqa_vuzy_vuzies', 'v1')
            ->join('wealqa_vuzy_vuzies', 'v1', 'v1.id', 'v2.golovnoyvuz')
            ->join('wealqa_vuzy_specs', 'v2.id', 'wealqa_vuzy_specs.id_vuz')
            ->select('v1.*')
            ->where('v1.golovnoyvuz', 0)
            ->where('v1.id_city', 59)
            ->where('wealqa_vuzy_specs', '>', 0)
            ->groupBy('v1.id')
            ->get();

#3 Re: Laravel 5.x » перевести запрос в формат лары » 20.01.2017 15:23:38

constb, сколько возьмете денег, чтобы решить задачу?

#4 Re: Laravel 5.x » перевести запрос в формат лары » 20.01.2017 15:12:11

lara 5.3. суть в чем: есть 2 таблицы. vuz, spec. в vuz вузы и факультеты. специальности из таблицы spec относятся к факультетам.

в таблице vuz есть поле golovnoyvuz. в этом поле хранятся id головных вузов. допустим МГУ - id 1 . факультеты мгу id 2, id 3, id 4. у факультетов в поле golovnoyvuz - 1.

#5 Laravel 5.x » перевести запрос в формат лары » 20.01.2017 14:56:45

vuzopedia
Ответов: 6

здравствуйте.

есть sql запрос,

SELECT vuz.id, vuz.vuz AS vuz, tmp.* 
FROM vuz, (select spec.id as idsp, vuz.id_city, spec.spec as spec, vuz.golovnoyvuz as g_vuz, 
spec.budzhmest, spec.napr, napr.id, spec.stoimost, AVG(spec.stoimost) 
from vuz, spec where vuz.id = spec.id_vuz and spec.stoimost>0 group by vuz.golovnoyvuz ) tmp 
WHERE vuz.id = tmp.g_vuz and vuz.golovnoyvuz = 0

нужно преобразовать его в формат запросов лары ->where()->leftJoin итд. помогите плз

вот попытка, но запрос не видит tmp.g_vuz в чем причина может быть?

DB::table(DB::raw("vuz,(select spec.id as idsp, vuz.id_city, spec.spec as spec, vuz.golovnoyvuz as g_vuz, spec.budzhmest, 
spec.napr, napr.id, spec.stoimost, AVG(spec.stoimost)
from vuz, spec where vuz.id = spec.id_vuz and spec.stoimost>0 group by vuz.golovnoyvuz ) as
tmp"))->select('vuz.id', 'vuz.vuz AS vuz', 'tmp.*')
        ->where('vuz.id' ,'=', 'tmp.g_vuz')
        ->where('vuz.golovnoyvuz','=','0' )->orderBy('avg','desc')->get();

Подвал раздела