Я пытаюсь изучить реляционные языки запросов и SQL, а приведенный ниже пример действительно меня смущает. Не могли бы вы помочь объяснить, где я должен начать анализ этих вложенных NOT EXIST (самый внешний?) И что каждый из них делает? Спасибо огромное!Вложенный NOT EXIST в SQL
Примечание: Это всего лишь пример, а не приложение для реального мира.
считает директор {имя, кино} и актер {имя, кино, роль}
SELECT
d1.name
FROM
Director d1
WHERE NOT EXISTS (SELECT d2.movie
FROM Director d2
WHERE d2.name = d1.name
AND NOT EXISTS(SELECT a1.role
FROM Actor a1
WHERE a1.name = d2.name
AND a1.movie = d2.movie
AND NOT EXISTS(SELECT a2.role
FROM Actor a2
WHERE a2.role ̸= a1.role
AND a2.movie = a1.movie
AND a2.name= a1.name
)
)
)
Я чувствую себя немного похожей на задницу, указывающей на это, но я получил довольно длинное объяснение такого рода запросов здесь: http://stackoverflow.com/questions/29012455/find-the-s-of-the-Suppl-who-supply-every-part/29013311 # 29013311 –