【发布时间】:2015-05-20 15:37:30
【问题描述】:
我正在尝试学习关系查询语言和 SQL,下面的示例确实让我感到困惑。请您帮忙解释一下我应该从哪里开始分析这些嵌套的 NOT EXIST(最外层的?),以及它们各自的作用?太感谢了!
注意:这只是一个示例,并非真实世界的应用程序。
考虑导演{姓名、电影}和演员{姓名、电影、角色}
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
)
)
)
【问题讨论】:
-
我觉得这有点像个混蛋,但我在这里对这种查询进行了相当冗长的解释:stackoverflow.com/questions/29012455/…
标签: sql database nested relation not-exists