Trong Oracle, giả sử (USER, HOBBY)
là duy nhất, bạn có thể sử dụng GROUP BY
truy vấn:
SELECT user
FROM user_hobby
WHERE hobby IN ('piano', 'sport')
GROUP BY user
HAVING COUNT(*) = 2
Điều này sẽ làm cho Oracle thực hiện nhiều nhất một lần chuyển dữ liệu trong khi INTERSECT sẽ xử lý từng truy vấn riêng biệt và do đó sẽ cần hai lần chuyển.