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 的頭像
    PG Levin Li

    程式開發學習之路

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