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

为何用AND同时筛选两位演员的SQL语句无法返回结果?

为什么用AND同时匹配两位演员的WHERE语句无法查出共同参演的电影?

问题核心在于对单条记录的逻辑判断误解:

  • IMDB的演员-电影关联表(比如movie_cast)里,每一条记录只对应一部电影和一个演员,不存在一条记录同时存储两个演员名字的情况。
  • 你最初写的类似 WHERE actor_name = 'Johnny Depp' AND actor_name = 'Helena Bonham Carter' 的语句,本质是要求同一条记录的actor_name字段同时等于两个完全不同的值,这在逻辑上不可能成立,所以查不到任何结果。

而子查询的写法是先找出Helena参演的所有电影,再从Johnny参演的电影里筛选出同时在这个列表里的作品,相当于找两个演员参演电影集合的交集,这才符合“共同参演”的逻辑。

另外,除了子查询,也可以用表自连接的方式实现相同效果:

SELECT DISTINCT mc1.movie_title
FROM movie_cast mc1
JOIN movie_cast mc2 ON mc1.movie_title = mc2.movie_title
WHERE mc1.actor_name = 'Johnny Depp'
AND mc2.actor_name = 'Helena Bonham Carter';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:51:34