2016-09-22 2 views
0

Используя следующую схему базы данных, найти бары, которые служат только пиво (ы), который Джо любит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 Workbench и это вызывает синтаксических ошибок на не – Hamon148

+0

меня обновить ответ (неправильно это) – scaisEdge

Смежные вопросы