select  b.* from ABC a,DEF b where a.OptionID=b.OptionID 
and a.SubjectCode in (***************) 上面的*************** 是一个子查询。 
当我把select  b.* 替换成select distict b.* 就会出现查询超时请大家帮助看看是什么原因!

解决方案 »

  1.   

    select b.* from ABC a,DEF b where a.OptionID=b.OptionID 
    and a.SubjectCode in (select SubjectCode as 列名  from 表名)  
      

  2.   

    当我把select b.* 替换成select distict b.* 就会出现查询超时?
    查看執行計劃
      

  3.   

    IN的实质就是无数个=,中间用OR连接起来
    比如IN (1,2,3)实质上就是=1 or =2 or =3,效率自然不高
    这样相当于对字段多条件,进行了全表扫描,效率低
    楼主可考虑使用JOIN连接.
      

  4.   

    select b.* from ABC a,DEF b , (***************) c
    where a.OptionID=b.OptionID and a.SubjectCode = c.SubjectCode