Di Oracle, dengan asumsi (USER, HOBBY) unik, Anda bisa menggunakan GROUP BY permintaan:
SELECT user
FROM user_hobby
WHERE hobby IN ('piano', 'sport')
GROUP BY user
HAVING COUNT(*) = 2
Ini akan membuat Oracle melakukan paling banyak satu lintasan pada data sedangkan INTERSECT akan memperlakukan setiap kueri secara terpisah dan oleh karena itu memerlukan dua lintasan.