I Oracle, förutsatt (USER, HOBBY)
är unik, kan du använda en GROUP BY
fråga:
SELECT user
FROM user_hobby
WHERE hobby IN ('piano', 'sport')
GROUP BY user
HAVING COUNT(*) = 2
Detta kommer att få Oracle att utföra högst en enda överföring av data medan INTERSECT skulle behandla varje fråga separat och därför skulle behöva två överföringar.