查询生成器/laravel中具有distinct子句的子查询
如何将上述内容转换为查询生成器语法:查询生成器/laravel中具有distinct子句的子查询,laravel,query-builder,Laravel,Query Builder,如何将上述内容转换为查询生成器语法: SELECT * FROM `movie_list` WHERE `movie_id` IN (SELECT DISTINCT movie_id FROM `movie_genre` where genre_id in (12,18,53)) AND rated IN ('Not Rated','N/A') 我有一个内在的:它是这样的: $movies = DB::table('movie_list') ->
SELECT * FROM `movie_list`
WHERE `movie_id` IN
(SELECT DISTINCT movie_id FROM `movie_genre` where genre_id in (12,18,53))
AND rated IN
('Not Rated','N/A')
我有一个内在的:它是这样的:
$movies = DB::table('movie_list')
->whereIn('movie_id',function($query){
$query->select.....
})->get();
如何将此结果用于查询的其余部分?对于雄辩的模型,您可以更流畅地执行此操作,但假设您没有设置模型,这应该可以实现未经测试的技巧
DB::table('movie_genre')
->whereIn('genre_id', array(12,18,53))
->distinct()
->get(array('movie_id'));
DB::table'movie_list'->其中'movie_id',函数$query{$query->selectDB::raw'movie_id'->来自'movie_genre'->其中'genre_id',array12,18,53->distinct;}->分页5;
$ids = DB::table('movie_genre')
->whereIn('genre_id', [12,18,33])
->distinct()
->get(['movie_id'])
->toArray();
$movies = DB::table('movie_list')
->whereIn('movie_id', array_values($ids))
->get();