在許多基於基礎表的查詢中,爲了知足一個條件,每每須要對另外一個表進行聯接.在這種狀況下, 使用EXISTS(或NOT EXISTS)一般將提升查詢的效率.ide
低效:it
SELECT *class
FROM EMP (基礎表)效率
WHERE EMPNO > 0基礎
AND DEPTNO IN (SELECT DEPTNO查詢
FROM DEPTdi
WHERE LOC = ‘MELB’)view
高效:vi
SELECT *co
FROM EMP (基礎表)
WHERE EMPNO > 0
AND EXISTS (SELECT ‘X’
FROM DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO
AND LOC = ‘MELB’)
( 相對來講,用NOT EXISTS替換NOT IN 將更顯著地提升效率)