You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于影视系列筛选相似影片的SQL查询合理性咨询

影片同系列相似影片查询SQL的合理性分析

表结构与数据

现有movies_franchises表的结构及数据如下:

idmovie_idfranchise_id
12315
12415
12515
12616
12316

需求说明:一部影片可关联多个影视系列(franchise_id),需要获取与指定影片(例如movie_id=23)同系列的所有相似影片,预期返回结果为24、25、26。

用户当前使用的SQL语句:

SELECT DISTINCT movie_id FROM movies_franchises WHERE franchise_id IN (SELECT franchise_id FROM movies_franchises WHERE movie_id = 23) AND movie_id != 23

合理性分析

这个写法完全合理,能精准满足需求,具体原因:

  • 子查询先定位出指定影片(movie_id=23)所属的所有系列ID(此处为15和16),主查询再筛选这些系列下的所有影片ID,同时排除指定影片本身,逻辑直接清晰
  • 加上DISTINCT可以避免同一影片因关联多个系列而重复返回,比如若某影片同时属于15和16系列,不会多次出现在结果里
  • 语句简单易懂,对于中小数据量的表来说,性能表现足够

如果你的表数据量较大,想要优化性能,也可以改用JOIN写法,部分数据库的优化器对JOIN的执行计划会更友好,示例如下:

SELECT DISTINCT mf2.movie_id
FROM movies_franchises mf1
JOIN movies_franchises mf2 ON mf1.franchise_id = mf2.franchise_id
WHERE mf1.movie_id = 23 AND mf2.movie_id != 23

两种写法都能达成目标,具体选择可以根据实际数据规模和数据库的执行效率来决定。

内容的提问来源于stack exchange,提问作者Bobby Redjeans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:37:31