Oracle
 sql >> Database >  >> RDS >> Oracle

SQL in vs intersezione

In Oracle, assumendo (USER, HOBBY) è unico, puoi usare un GROUP BY domanda:

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

Ciò consentirà a Oracle di eseguire al massimo un singolo passaggio sui dati, mentre INTERSECT tratterebbe ogni query separatamente e quindi richiederebbe due passaggi.