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

SQL查询IMDB数据库:如何显示Kevin Bacon合作演员并排除本人?

解决方法

直接在你的查询语句最外层的WHERE条件里,加上排除特定Kevin Bacon的过滤规则就行,有两种简单的实现方式:

方式一:通过ID排除(更准确)

利用你已经写的子查询定位目标Kevin Bacon的ID,直接排除该ID:

SELECT name
FROM people 
WHERE id IN (SELECT DISTINCT person_id 
             FROM stars 
             WHERE movie_id IN (SELECT movie_id 
                                FROM stars 
                                WHERE person_id IN (SELECT id 
                                                    FROM people 
                                                    WHERE name = "Kevin Bacon" 
                                                          and birth = "1958")))
AND id NOT IN (SELECT id 
               FROM people 
               WHERE name = "Kevin Bacon" 
                     and birth = "1958");

方式二:通过姓名+出生年份排除

如果确认姓名加出生年份能唯一定位目标Kevin Bacon,也可以直接在最外层添加该条件:

SELECT name
FROM people 
WHERE id IN (SELECT DISTINCT person_id 
             FROM stars 
             WHERE movie_id IN (SELECT movie_id 
                                FROM stars 
                                WHERE person_id IN (SELECT id 
                                                    FROM people 
                                                    WHERE name = "Kevin Bacon" 
                                                          and birth = "1958")))
AND NOT (name = "Kevin Bacon" AND birth = "1958");

说明

你的原查询会列出所有参演过1958年生Kevin Bacon电影的演员,自然也包含他本人。通过在最外层添加排除条件,就能把他从结果中移除。用ID排除的方式更稳妥——毕竟理论上可能存在同名同出生年份的人,而ID是数据库中的唯一标识,不会出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:45:33