Oracle SQL JOIN 取代 IN 的用法



大家都知道IN很好用,

但資料量大的時後就會有效能問題。

IN和OR會對全表格掃描完之後,

再將符合的資料篩選出來。

這裡不說效能。

本文重點是改寫。

改寫類型如下,當你的IN裡面的資料是來別的TABLE時。



測試IN SQL:

SELECT * FROM EMPLOYEES 
WHERE DEPARTMENT_ID IN(
SELECT DEPARTMENT_ID
FROM DEPARTMENTS
WHERE DEPARTMENT_ID<50);







測試JOIN SQL:


SELECT * 
FROM EMPLOYEES
JOIN DEPARTMENTS
ON
EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID
AND DEPARTMENTS.DEPARTMENT_ID<50;









其它文章






arrow
arrow

    PG Levin Li 發表在 痞客邦 留言(0) 人氣()