私は SQL が初めてで、この種のステートメントを SQL に変換するのはこれが初めての試みです。
ジョン・スミスが好きなビールを提供するすべてのバーに通う酒飲みを見つけます
そして、それに答えるために次の3つの表があります。
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))
誰かがそれを修正する方法を理解するのを手伝ってくれますか?