有2个表格,一个叫饮酒者,带有一列名称,另一个叫常饮者,它有2列,饮酒者和酒吧(他们经常去)。
我有一个查询,可以回答以下语句:
Drinkers who frequent all bars
Run Code Online (Sandbox Code Playgroud)
或措辞不同:
Drinkers such that there aren’t any bars that they don’t frequent
Run Code Online (Sandbox Code Playgroud)
现在这是结果查询:
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
)
)
Run Code Online (Sandbox Code Playgroud)
当使用两个逻辑时,我很难遵循逻辑NOT EXISTS。如果有人可以指导我了解如何理解这些类型的查询,将不胜感激。谢谢。