在laravel中选择

时间:2019-04-11 11:58:30

标签: laravel

我最近开始学习Laravel,无法通过查询解决问题。

SELECT * FROM films WHERE id IN (SELECT film_id FROMfavorites WHERE user_id = 2)

这是正确的代码,但是如何为Laravel编写代码 我试图查看文档,但事实并非如此。也许有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您可以将Eloquent模型与whereIn()一起使用,如下所示

Films::whereIn('id',Favorites::where('user_id', 2)->pluck('film_id'))->get();

并且如果您将Eloquent模型用于关联,那么它将变得更加简单

$user->favorites()->films

答案 1 :(得分:0)

要将其构建为查询,可以使用whereIn

\DB::table('films')->whereIn('id', function($query) {
            $query->select('id')->from('favorites')->where('user_id',2);
        })->toSql();

这将生成

select * from `films` where `id` in (select `id` from `favorites` where `user_id` = ?)