【发布时间】:2015-12-20 18:40:47
【问题描述】:
有 2 张桌子,一张称为饮酒者,有一列名称,另一张称为常客,有 2 列,饮酒者和酒吧(他们经常光顾的)。
我有一个回答这个陈述的查询:
Drinkers who frequent all bars
或措辞不同:
Drinkers such that there aren’t any bars that they don’t frequent
现在这是结果查询:
SELECT d.name
FROM drinkers d
WHERE NOT EXISTS (
SELECT b.name
FROM bars b
WHERE NOT EXISTS (
SELECT *
FROM frequents f
WHERE f.drinker = d.name
AND f.bar = b.name
)
)
当使用两个NOT EXISTS 时,我最难遵循逻辑。
如果有人可以指导我如何理解这些类型的查询,将不胜感激。谢谢。
【问题讨论】: