sqlite cs50 -pset 7- movies - 10.sql检查50测试失败

rsl1atfo  于 2022-12-13  发布在  SQLite
关注(0)|答案(1)|浏览(119)

我目前正在使用10.sql,它要求我查找所有导演了一部评分至少为9.0的电影的人
以下是架构:
创建TABLE电影(

id INTEGER,
                title TEXT NOT NULL,
                year NUMERIC,
                PRIMARY KEY(id)
            );

CREATE TABLE星号(

movie_id INTEGER NOT NULL,
            person_id INTEGER NOT NULL,
            FOREIGN KEY(movie_id) REFERENCES movies(id),
            FOREIGN KEY(person_id) REFERENCES people(id)
        );

创建表控制器(

movie_id INTEGER NOT NULL,
            person_id INTEGER NOT NULL,
            FOREIGN KEY(movie_id) REFERENCES movies(id),
            FOREIGN KEY(person_id) REFERENCES people(id)
        );

创建表评级(

movie_id INTEGER NOT NULL,
            rating REAL NOT NULL,
            votes INTEGER NOT NULL,
            FOREIGN KEY(movie_id) REFERENCES movies(id)
        );

创建表格人员(

id INTEGER,
            name TEXT NOT NULL,
            birth NUMERIC,
            PRIMARY KEY(id)
        );

下面是我编写的代码:

SELECT DISTINCT name FROM people
JOIN directors ON directors.person_id = people.id
JOIN movies ON movies.id  = directors.person_id
JOIN ratings ON ratings.movie_id = movies.id
WHERE ratings.rating >= 9.0;

当我在sqlite3上工作时,它返回了一个名称列表。但是它没有通过check50测试,错误消息是“查询没有返回结果”。我不知道为什么。谁能告诉我我做错了什么吗?非常感谢

5w9g7ksd

5w9g7ksd1#

为什么您需要加入movies?请尝试:

SELECT
    name 
FROM
    people 
    JOIN directors ON people.id = directors.person_id 
    JOIN ratings ON directors.movie_id = ratings.movie_id 
WHERE
    ratings.rating >= 9.0

相关问题