Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

SQL na interseção vs


No Oracle, assumindo (USER, HOBBY) é único, você pode usar um GROUP BY consulta:
SELECT user
  FROM user_hobby
 WHERE hobby IN ('piano', 'sport')
 GROUP BY user
HAVING COUNT(*) = 2

Isso fará com que o Oracle execute no máximo uma única passagem de dados, enquanto o INTERSECT trataria cada consulta separadamente e, portanto, precisaria de duas passagens.