select * from a where id not in(select id from b)==>select a.* from a where not exists(select 1 from b where id=a.id)

解决方案 »

  1.   

    如果是IN,NOT IN,最好都用EXISTS NOT EXISTS,因为IN要全表搜寻,之后才作比较,但是EXISTS只要一经查到马上下一个,综合速度较优最主要是,如果用NOT IN(SELECT COL FORM TABLE)--〉如果SELECT COL FORM TABLE里面有NULL,会一笔记录都不出来,例如:
    SELECT 1 WHERE 1 NOT IN (0)
    SELECT 1 WHERE 1 NOT IN (0,NULL)
    /*
                
    ----------- 
    1(1 row(s) affected)
                
    ----------- (0 row(s) affected)*/