Фильмы CS50 Pset7 - 13. sql - PullRequest
       5

Фильмы CS50 Pset7 - 13. sql

0 голосов
/ 29 марта 2020

Я на последнем шаге для этой задачи, и у меня возникла проблема с получением имен людей, которые снялись в фильме ie, в котором также играл Кевин Бэкон. Я собрал этот код, и сейчас у него только одно имя, Стив Гуттенберг. Основываясь на логике c, которую я имею в своем коде (я буду включать примечания), он должен дать мне все имена (да, я знаю, что сам Кевин Бэкон не должен быть в этом списке в конечном счете, но я пытаюсь решить один проблема за раз).

SELECT name  --Get name where the id is equal to the id in stars in the next step
FROM people
WHERE id = (
    SELECT person_id  --Get all the star's ids who are in the movies in which Kevin Bacon starred in
    FROM stars
    WHERE stars.movie_id = (
            SELECT movie_id  --Get all movie ids where Kevin Bacon starred in
            FROM stars
            Where stars.person_id = (
                SELECT id       --Get Kevin Bacon's ID
                FROM people
                WHERE people.name = "Kevin Bacon" AND birth = 1958)
                            )
            )

Я не уверен, где логика c ломается в моем коде. У кого-нибудь еще были подобные проблемы? Заранее спасибо!

1 Ответ

0 голосов
/ 29 марта 2020

Этот SELECT movie_id --Get all movie ids по существу возвращает список фильмов, в которых КБ снимался. Здесь WHERE stars.movie_id = ( нужно выбрать все movie_id, которые находятся в этом «списке».

То же самое здесь WHERE id = ( необходимо выбрать все id, которые В person_id «списке».

...