SQL中IN與EXISTS用法的區別

2021-10-05 08:28:09 字數 409 閱讀 3306

結論為:

in()適合b錶比a表資料小的情況

exists()適合b錶比a表資料大的情況

當a表資料與b表資料一樣大時,in與exists效率差不多,可任選乙個使用.

舉例:select * from emp (基礎表) where empno > 0 and exists (select 『x』 from dept where dept.deptno = emp.deptno and loc = 『melb』)

select * from emp (基礎表) where empno > 0 and deptno in(select deptno from dept where loc = 『melb』)

這兩句效果一樣。

當emp表資料較大時,使用in。dept表資料量較大時,使用exists。

SQL中EXISTS的用法

比如在northwind資料庫中有乙個查詢為 select c.customerid,companyname from customers c where exists select orderid from orders o where o.customerid c.customerid 這裡面的...

SQL中EXISTS的用法

比如在northwind資料庫中有乙個查詢為 select c.customerid,companyname from customers c where exists select orderid from orders o where o.customerid c.customerid 這裡面的...

SQL中EXISTS的用法

比如在northwind資料庫中有乙個查詢為 select c.customerid,companyname fromcustomers c where exists select orderid fromorders owhereo.customerid c.customerid 這裡面的exis...