В Oracle, приемайки (USER, HOBBY)
е уникален, можете да използвате GROUP BY
заявка:
SELECT user
FROM user_hobby
WHERE hobby IN ('piano', 'sport')
GROUP BY user
HAVING COUNT(*) = 2
Това ще накара Oracle да извърши най-много едно преминаване на данни, докато INTERSECT ще третира всяка заявка отделно и следователно ще се нуждае от две преминавания.