首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >排除SQL中的特定行(CS50问题集7:电影)

排除SQL中的特定行(CS50问题集7:电影)
EN

Stack Overflow用户
提问于 2020-10-08 04:36:16
回答 1查看 59关注 0票数 0

我目前正在做CS50问题集7,叫做Movies。这是关于SQL的,编写查询来完成每一个任务。有一项任务,我需要列出所有在凯文·培根也主演的电影中主演的人的名字。

这是我的代码:

代码语言:javascript
运行
复制
-- show every actor starred in a movie that Kevin Bacon also starred in WITHOUT appearing Kevin Bacon itself --

SELECT DISTINCT name FROM
movies JOIN stars ON movies.id = stars.movie_id JOIN
people ON stars.person_id = people.id
WHERE movies.id IN (SELECT movie_id FROM stars WHERE person_id IN(SELECT id FROM people WHERE name = "Kevin Bacon" AND birth = 1958));

我几乎成功了。。这将输出177行。总共有177个演员。我已经区分了他们中的每一个。但是结果应该是176行。然后我意识到,正如任务要求的那样,我不应该把凯文·培根自己也包括在名单上。

请帮帮我。这是我第一次玩SQL。如何将凯文·培根从名单中删除?我应该在我的查询代码中添加什么?

EN

回答 1

Stack Overflow用户

发布于 2020-10-08 04:47:35

您必须排除人员的id,spo您还必须从Kevon Bacon获取id并将其排除。

代码语言:javascript
运行
复制
SELECT DISTINCT name FROM
movies JOIN stars ON movies.id = stars.movie_id JOIN
people ON stars.person_id = people.id
WHERE movies.id IN (SELECT movie_id FROM stars WHERE person_id IN(SELECT id FROM people WHERE name = "Kevin Bacon" AND birth = 1958))
AND  people.id NOT IN (SELECT id FROM people WHERE name = "Kevin Bacon" AND birth = 1958);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64251944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档