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
barpara 'Juan' y/o 'Rebeca' - contraer las filas en una sola fila para cada
bar - obtener un recuento de
drinkerpara cada barra - desechar las filas que cuentan hasta 2 (es decir, tanto John como Rebecca)
- dejando solo los valores de
barpara John y no Rebecca o viceversa