项目中碰到一个Sql,由于使用了两个IN 查询起来非常慢,请大侠们指教,不剩感激!!SELECT COUNT(*) FROM TBCOMPANY c WHERE c.FDCOMPANYID IN (SELECT FDCOMID FROM TBCOMPANYCON WHERE FDCONID IN (SELECT CONID FROM TBCONSULTANT WHERE FDCONSENAME LIKE '%fr%'))
调试欢乐多
应该可以,通过自连接将表连接(通过公用字段),代替了IN
from TBCOMPANY c,TBCOMPANYCON d,TBCONSULTANT e
where c.FDCOMPANYID=d.FDCOMID and d.FDCONID = e.CONID and
e.FDCONSENAME LIKE '%fr%'
或者:
select count(distinct c.唯一关键字段)
from TBCOMPANYCON e inner join TBCONSULTANT d on d.FDCONID = e.CONID --内连接
inner join c on c.FDCOMPANYID=d.FDCOMID
where e.FDCONSENAME LIKE '%fr%'