In Oracle unter der Annahme (USER, HOBBY)
eindeutig ist, könnten Sie ein GROUP BY
verwenden Abfrage:
SELECT user
FROM user_hobby
WHERE hobby IN ('piano', 'sport')
GROUP BY user
HAVING COUNT(*) = 2
Dadurch führt Oracle die Daten höchstens einmal durch, während INTERSECT jede Abfrage separat behandeln würde und daher zwei Durchgänge benötigen würde.