Myślę, że to dobre rozwiązanie...
Podzapytanie służy do odfiltrowywania osób pijących, które odwiedzają bar, w którym liczba piw, które im się podobają, wynosi 0.
select distinct drinker
from frequents
where drinker not in (
select f.drinker
from frequents f
join sells s on f.bar = s.bar
left join likes l on l.drinker = f.drinker and l.beer = s.beer
group by f.drinker, f.bar
having count(l.drinker) = 0
);