Я пытаюсь написать запрос sql, где желаемый вывод составляет 176 строк
Вот запрос:
SELECT name FROM people WHERE id IN(SELECT person_id FROM stars WHERE movie_id IN (SELECT id FROM movies WHERE id IN ( SELECT movie_id FROM stars WHERE person_id = (SELECT id FROM people WHERE birth = 1958 AND name = 'Kevin Bacon'))))EXCEPT SELECT name FROM people WHERE name = "Kevin Bacon";
Я получаю правильный вывод, но когда я проверяю код для подсчета количества строк (я заменяю имя на COUNT (имя)) COUNT возвращает 177, потому что он не исключает строки в выражении EXCEPT.
Есть ли способ заставить считать учесть оператор EXCEPT ??? Вот еще немного информации:
Это набор проблем https://cs50.harvard.edu/x/2020/psets/7/movies/ Я застрял на 13. sql
.schema возвращает
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)
);