Oracle
 sql >> Base de données >  >> RDS >> Oracle

SQL dans vs intersection

Dans Oracle, en supposant (USER, HOBBY) est unique, vous pouvez utiliser un GROUP BY requête :

SELECT user
  FROM user_hobby
 WHERE hobby IN ('piano', 'sport')
 GROUP BY user
HAVING COUNT(*) = 2

Cela obligera Oracle à effectuer au plus une seule passe sur les données alors que l'INTERSECT traiterait chaque requête séparément et nécessiterait donc deux passes.