我最近开始学习Laravel,无法通过查询解决问题。
SELECT * FROM
films
WHERE id IN (SELECT film_id FROMfavorites
WHERE user_id = 2)
这是正确的代码,但是如何为Laravel编写代码 我试图查看文档,但事实并非如此。也许有人知道如何解决这个问题?
答案 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` = ?)