1. 程式人生 > >not in 與not exists區別

not in 與not exists區別

1、對於not  exists查詢,內表存在空值對查詢結果沒有影響;對於not  in查詢,內表存在空值將導致最終的查詢結果為空。

2、對於not  exists查詢,外表存在空值,存在空值的那條記錄最終會輸出;對於not   in查詢,外表存在空值,存在空值的那條記錄最終將被過濾,其他資料不受影響。

eg:    select * FROM customer a where   not exists (select customer_no from bank_customer b  where a.customer_no=b.customer_no );

         select * from customer where customer_no        is not null       and customer_no  not in (select customer_no from bank_customer     where     customer_no is not null);
   
        以上兩個     查詢結果集相同