1.用IN時不對NULL進行處理 select
2.NOT EXISTS 與 NOT IN 不能徹底互相替換,看具體的需求。若是選擇的列能夠爲空,則不能被替換,例如:
select * FROM T_DataEle_New where dataeleid not in (select dataeleid FROM t_data_path)
SELECT * from T_DataEle_New where EXISTS (SELECT 1 from t_data_path where t_data_path.dataeleid=T_DataEle_New.dataeleid)查詢
這2條SQL,若是t_data_path中的 dataeleid 存在NULL值的時候,第一條SQL查詢不到記錄的。第二條則能夠data
若是表t_data_path中的 dataeleid有非空約束的話,2條SQL結果相同path
注意:不要亂用NOT IN