Algo como esto debería satisfacer la especificación:
SELECT f.bar
FROM frequents f
WHERE f.drinker IN ('John','Rebecca')
GROUP
BY f.bar
HAVING COUNT(DISTINCT f.drinker) < 2
- obtener todo
bar
para 'Juan' y/o 'Rebeca' - contraer las filas en una sola fila para cada
bar
- obtener un recuento de
drinker
para cada barra - desechar las filas que cuentan hasta 2 (es decir, tanto John como Rebecca)
- dejando solo los valores de
bar
para John y no Rebecca o viceversa