2016-08-28 4 views
-1

Я использую Laravel 5.1 в своем приложении. Мой запрос MySQL:Преобразование запроса Mysql в Laravel 5 Красноречивый?

"Select * from " 
     . "(Select u.* from " 
     . "(" 
     . "SELECT u2.id as user_id, u2.fname as fname, u2.lname as lname, u2.uname as uname, u2.email as email, u2.address as address, u2.city_id as city_id, u2.website as website FROM users u1, users u2 where u1.city_id = u2.city_id && u1.id = '$this->current_user_id') 
      u left join follows f on u.user_id = f.following_id where f.following_id is null 
      UNION 
      Select uu.id as user_id, uu.fname as fname, uu.lname as lname, uu.uname as uname, uu.email as email, uu.address as address, uu.city_id as city_id, uu.website as website from users uu where uu.id in (Select u.user_id from (SELECT user_id FROM reviews group by user_id order by count(user_id) desc5 
      ) u left join follows f on u.user_id=f.following_id where f.following_id is null 
      ) 
      ) 
      T LIMIT 5" 

Как я могу преобразовать его в Laravel Rloquent?

+2

Вы пытались его преобразовать? –

+0

desc5 ?? Что это такое – Strawberry

+0

Eloquent - это ORM. Поэтому вам нужно [создать соответствующие модели] (https://laravel.com/docs/5.1/eloquent#defining-models) и [отношения] (https://laravel.com/docs/5.1/eloquent-relationships # определение-отношений). – Johnny

ответ

0

Является ли этот запрос функционально идентичен этот один:

SELECT u2.id user_id 
    , u2.fname 
    , u2.lname 
    , u2.uname 
    , u2.email 
    , u2.address 
    , u2.city_id 
    , u2.website 
    FROM users u1 
    JOIN users u2 
    ON u2.city_id = u1.city_id 
    LEFT 
    JOIN follows f 
    ON f.following_id = u.user_id 
WHERE f.following_id is null 
UNION 
SELECT uu.id user_id 
    , uu.fname 
    , uu.lname 
    , uu.uname 
    , uu.email 
    , uu.address 
    , uu.city_id 
    , uu.website 
    FROM users uu 
    JOIN 
    (SELECT r.user_id 
     FROM reviews r 
     LEFT 
     JOIN follows f 
      ON f.following_id = r.user_id 
     WHERE f.following_id IS NULL 
     GROUP 
      BY user_id 
     ORDER 
      BY COUNT(user_id) DESC 
     LIMIT 5 
    ) x 
    ON x.user_id = uu.id; 

?

+0

но я хочу преобразовать laravel красноречивым ..? –

+0

Кажется, что мне проще конвертировать – Strawberry

+0

Кроме того, нет какой-то функции DB :: raw() – Strawberry

Смежные вопросы