选择在laravel中选择

问题描述 投票:0回答:2

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

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

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

laravel
2个回答
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` = ?)

2
投票

你可以使用Eloquent模型和whereIn(),如下所示

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

如果你使用Eloquent模型的关系,那么它将更简单如下

$user->favorites()->films
© www.soinside.com 2019 - 2024. All rights reserved.