我的 cs50 pset 7 10.sql 嵌套查询哪里出错了?
Where am I going wrong in my cs50 pset 7 10.sql nested query?
我目前正在尝试查找所有执导过评分至少为 9.0 的电影的人的姓名
这些表的方案是
CREATE TABLE movies (
id INTEGER,
title TEXT NOT NULL,
year NUMERIC,
PRIMARY KEY(id)
);
CREATE TABLE stars (
movie_id INTEGER NOT NULL,
person_id INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(person_id) REFERENCES people(id)
);
CREATE TABLE directors (
movie_id INTEGER NOT NULL,
person_id INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(person_id) REFERENCES people(id)
);
CREATE TABLE ratings (
movie_id INTEGER NOT NULL,
rating REAL NOT NULL,
votes INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id)
);
CREATE TABLE people (
id INTEGER,
name TEXT NOT NULL,
birth NUMERIC,
PRIMARY KEY(id)
);
我的 SQL 查询是:
SELECT DISTINCT name FROM people
WHERE id IN ( SELECT person_id FROM directors WHERE movie_id IN (
SELECT id FROM movies WHERE id IN (
SELECT movie_id FROM ratings WHERE votes >= 9.0)));
然而,这未能通过 check50 测试,并给出了错误的输出。谁能帮我解决我哪里出错了?
规范说(强调)
In 10.sql
, write a SQL query to list the names of all people who have directed a movie that received a rating of at least 9.0.
查询未筛选 ratings.rating
列。
我目前正在尝试查找所有执导过评分至少为 9.0 的电影的人的姓名 这些表的方案是
CREATE TABLE movies (
id INTEGER,
title TEXT NOT NULL,
year NUMERIC,
PRIMARY KEY(id)
);
CREATE TABLE stars (
movie_id INTEGER NOT NULL,
person_id INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(person_id) REFERENCES people(id)
);
CREATE TABLE directors (
movie_id INTEGER NOT NULL,
person_id INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id),
FOREIGN KEY(person_id) REFERENCES people(id)
);
CREATE TABLE ratings (
movie_id INTEGER NOT NULL,
rating REAL NOT NULL,
votes INTEGER NOT NULL,
FOREIGN KEY(movie_id) REFERENCES movies(id)
);
CREATE TABLE people (
id INTEGER,
name TEXT NOT NULL,
birth NUMERIC,
PRIMARY KEY(id)
);
我的 SQL 查询是:
SELECT DISTINCT name FROM people
WHERE id IN ( SELECT person_id FROM directors WHERE movie_id IN (
SELECT id FROM movies WHERE id IN (
SELECT movie_id FROM ratings WHERE votes >= 9.0)));
然而,这未能通过 check50 测试,并给出了错误的输出。谁能帮我解决我哪里出错了?
规范说(强调)
In
10.sql
, write a SQL query to list the names of all people who have directed a movie that received a rating of at least 9.0.
查询未筛选 ratings.rating
列。