sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo encontrar columnas distintas en una subconsulta anidada en SQL?

Podría usar un hanving para contar distintos grupos de bebidas por DRINKER

SELECT DRINKERS.DRINKER
FROM DRINKERS
INNER JOIN ORDERS DRINKERS.DRINKER = ORDERS.DRINKER
WHERE ORDERS.DRINK IN ( 'VODKA' , 'WHISKY')
GROUP BY DRINKER
HAVING COUNT(DISTINCT ORDERS.DRINK ) = 2 

o si necesita un

anidado
    SELECT DISTINCT DRINKER
    FROM DRINKERS
    WHERE EXISTS (SELECT DRINKER 
                  FROM ORDERS
                  WHERE DRINK IN ( 'VODKA' AND 'WHISKY')
                  GROUP BY DRINKER
                  HAVING COUNT(DISTINCT ORDERS.DRINK ) = 2 
                  );