In Oracle, ervan uitgaande dat (USER, HOBBY)
uniek is, kunt u een GROUP BY
. gebruiken vraag:
SELECT user
FROM user_hobby
WHERE hobby IN ('piano', 'sport')
GROUP BY user
HAVING COUNT(*) = 2
Dit zorgt ervoor dat Oracle maximaal één keer gegevens doorgeeft, terwijl INTERSECT elke query afzonderlijk zou behandelen en daarom twee doorgangen nodig zou hebben.