select departid,res,departname,upgradeid,orderid,levelid ,(select count(departid) from org_depart where upgradeid = a.departid) as num from org_depart a  where 1=1  and orgid = 'buju@xf' and upgradeid = 'eb09df352cda4902b24c54dd2b2ce656'  order by orderid,departname limit 0,30   修改这条语句  ,高性查询

解决方案 »

  1.   

    不知道表的索引情况是什么样的,你可以分别对你的和下面这个语句EXPLAIN一下,看看哪个更优~
    select a.departid,a.res,a.departname,a.upgradeid,a.orderid,a.levelid ,count(*) from org_depart a inner join org_depart b on a.upgradeid=b.departid 
    where 1=1  and orgid = 'buju@xf' and upgradeid = 'eb09df352cda4902b24c54dd2b2ce656'
    group by a.id
    a.orderid,a.departname,a.departid,a.res,a.upgradeid,a.levelid 
    limit 0,30
      

  2.   

    show create table tbname出来看看