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;
其它文章
- 首頁
- JAVA教學目錄
- JSP教學目錄
- Apache教學目錄
- Google App Engine教學目錄
- JBoss教學目錄
- Android教學目錄
- Grails教學目錄
- SSH教學目錄
- Window教學目錄
- Linux教學目錄
- PHP教學目錄
- C教學/C++教學目錄
- jQuery教學目錄
- HTML5教學/CSS3教學目錄
- JavaScript教學目錄
- MySQL教學目錄
- Oracle教學目錄
- SQL Server教學/PostgreSQL教學/其它資料庫教學目錄
- Eclipse教學及開發相關工具教學目錄
- 程式開發基本資訊目錄
- 其它技術教學目錄
留言列表