Oracle中in和exists的選擇


    在ORACLE 11G大行其道的今天,還有很多人受早期版本的影響,記住一些既定的規則,
   1.子查詢結果集小,用IN
   2.外表小,子查詢表大,用EXISTS

摘自:http://blog.chinaunix.net/uid-7655508-id-3626647.html

 

簡單說明:

a表的數據小,b表數據大時用exists。a為外表(也為主表)

SELECT * FROM a  WHERE EXISTS(  SELECT 1 FROM b WHERE a.employee_id=b.employee_id);

b表數據量小(子表)時,用in。

 SELECT * FROM a WHERE a.employee_id IN (SELECT b.employee_id FROM b);

具體原理見上面鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM