@MelancholicTheDie
PHP Developer

Laravel. Как использовать leftJoin?

День добрый.

Есть такой вот sql запрос:
SELECT * FROM books AS e LEFT JOIN authors AS s ON e.authorid = s.id WHERE e.type = 2 AND s.authorid = 1


Его нужно перевести в laravel orm:

(Получилось у меня примерно так:)
$beginGames = event::where('books.type', '=',  DB::raw(2))
            ->leftJoin('authors as authors', 'authors.authorsid', '=', DB::raw(1))
            ->get();


Знаю, что есть еще способ через связи и модели, но понятия не имею как это сделать.

Так вот, если сделать у laravel запроса toSql(), то запрос будет примерно похожий, но все равно не тот.
select * from `books` left join `authors` as `authors` on `authors`.`authorid` = 1 where `books`.`type` = 2


Как быть? Как сделать правильно и чего не хватает?

Буду рад любой помощи, заранее спасибо.
  • Вопрос задан
  • 1629 просмотров
Решения вопроса 1
@private_tm
JAVA dev
stackoverflow.com/questions/23328301/laravel-eloqu... оно?

$beginGames = event::where('books.type', '=',  DB::raw(2))
             ->where('authors.authorid', '=',  DB::raw(1))
            ->leftJoin('authors as a, 'books.authorsid', '=', a.id)
            ->get();


Теперь оно?) может где то опечатался)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
\DB::select('SELECT * FROM books AS e LEFT JOIN authors AS s ON e.authorid = s.id WHERE e.type = ? AND s.authorid = ?', [2,1])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы