Этот оператор:
select id from people where name="Johnny Depp"
intersect
select id from people where name="Helena Bonham Carter"
возвращает общие результаты 2 запросов, но поскольку id
является уникальным первичным ключом таблицы people
, регистр не существует. что он вернет что-нибудь. Проще: если первый запрос возвращает 10, а второй возвращает 20, пересечение 10 и 20 не существует. Вы можете получить желаемый результат с помощью объединений:
select distinct m.title
from movies m
inner join stars s1 on s1.movie_id = m.id
inner join stars s2 on s2.movie_id = m.id
inner join people p1 on p1.id = s1.person_id and p1.name = 'Johnny Depp'
inner join people p2 on p2.id = s2.person_id and p2.name = 'Helena Bonham Carter'