如何从电影分类关联表中查询同时属于category 1和2的电影
假设你的关联表名为 movie_category_rel,以下是两种常用的查询方案:
- 方案1:分组聚合统计(推荐,性能更优)
SELECT movie_id FROM movie_category_rel WHERE catagory_id IN (1, 2) GROUP BY movie_id -- 如果表中不存在同一个movie_id+catagory_id的重复记录,可去掉DISTINCT HAVING COUNT(DISTINCT catagory_id) = 2;
逻辑说明:先筛选出分类为1或2的所有记录,按电影ID分组后,只保留同时覆盖两个分类的分组,对应movie_id就是目标结果。
- 方案2:自连接查询
SELECT DISTINCT t1.movie_id FROM movie_category_rel t1 INNER JOIN movie_category_rel t2 ON t1.movie_id = t2.movie_id WHERE t1.catagory_id = 1 AND t2.catagory_id = 2;
逻辑说明:通过表的自关联,匹配同一个电影同时存在分类1、分类2两条记录的情况,去重后得到目标结果。
内容的提问来源于stack exchange,提问作者vantaqada
相关产品推荐
相关产品推荐

