Решение примера 7 на запросы с предикатом IN
Пример 7. Вывести список актеров, которые играли во всех спектаклях William Shakespeare.
Запрос будет следующим:
SELECT fname, lname
FROM actor WHERE actor_id IN(SELECT
actor_id FROM team
WHERE play_id IN(SELECT
play_id FROM play
WHERE author = 'William Shakespeare'))
Один внешний запрос (по первичному ключу таблицы actor) и два подзапроса (по внешнему ключу таблицы team и по атрибуту таблицы play). Самый внутренний запрос (к таблице play) выбирает строки с play_id, соответствующие спектаклям с автором William Shakespeare. Первый подзапрос (к таблице team) выбирает строки, соответствующие ролям в спектаклях, выбранных в результате самого внутреннего запроса. И, наконец, внешний запрос выбирает актёров, соответствующих ролям, выбранным в результате подзапросов.