select id from a01 where id not in (select pid from a17)

解决方案 »

  1.   

    在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历).  为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS.
      

  2.   

    create index给这两个表建立索引!会很明显提高速度
      

  3.   

    select id from a01 where not exists (select pid from a01,a17 where a01.id=a17.pid)
      

  4.   

    在SQL SERVER中可以这样SELECT * FROM A07 A WHERE (NOT EXISTS (SELECT * FROM A17 WHERE PID = A.ID))