我是 SQL 新手,这是我第一次尝试将这种语句转换为 SQL。
找到经常光顾所有供应约翰史密斯喜欢的啤酒的酒吧的饮酒者
我有以下三个表格来回答它:
FREQUENTS(DRINKER, BAR)
SERVES(BAR, BEER)
LIKES(DRINKER, BEER)
这是我不成功的方法:
SELECT DISTINCT F1.DRINKER
FROM FREQUENTS F1
WHERE F1.DRINKER<>'John Smith'
AND F1.DRINKER NOT IN(SELECT F2.DRINKER
FROM FREQUENTS F2
WHERE F2.BAR NOT IN (SELECT S.BAR
FROM SERVES S, LIKES L
WHERE L.DRINKER='John Smith'
AND S.BEER=L.BEER
AND L.DRINKER=F2.DRINKER))
谁能帮我弄清楚如何解决它?