2016-09-22 59 views
0

使用下面的数据库模式,发现其作用只是啤酒(S)乔喜欢MySQL的非单调查询

Beers(name, manf) 
Bars(name, addr, license) 
Drinkers(name, addr, phone) 
Likes(drinker, beer) 
Sells(bar, beer, price) 
Frequents(drinker, bar) 

这条是我的尝试:

SELECT b.name 
FROM bars b 
WHERE NOT EXISTS 
    (SELECT l.beer 
    FROM likes l 
    WHERE l.drinker = 'joe' AND NOT EXISTS 
     (SELECT * 
     FROM sells s 
     WHERE l.beer = s.beer AND b.name = s.bar)) 

我试图返回酒吧,其中为啤酒乔喜欢,而不是只喜欢啤酒的酒吧。 任何帮助到哪里我错了会很有帮助

回答

0

可能是这些酒吧

select bar 
from Sells not in (
     select bar 
     from Sells 
     where beer not in (select beer from likes where drinker = 'joe') 
) 
+0

我测试了这对MySQL工作台,它会导致在没有语法错误在 – Hamon148

+0

我有更新的答案(错误的是) – scaisEdge