Mysql
 sql >> Database >  >> RDS >> Mysql

Logica di query SQL per principianti con 3 tabelle

Penso che questa sia una soluzione valida...

La sottoquery viene utilizzata per filtrare i bevitori che frequentano un bar che ha un conteggio pari a 0 di birre che gli piacciono.

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
);

Campione SQL Fiddle