sql---两个查询

2014-11-24 03:05:04 · 作者: · 浏览: 2
sql---两个查询
1.
Sql代码  
SELECT D.WGMC, D.JDMC, D.HS, COUNT(6) ZS  
FROM  
(SELECT C.WGMC WGMC,C.WGBM WGBM,C.JDMC JDMC,C.HS HS  
FROM (SELECT COUNT(2) HS,WG.WGMC,WG.WGBM,JD.JDMC   
FROM T_SHSJGL_GH H, T_SHSJGL_WG WG,T_SHSJGL_SQ SQ,T_SHSJGL_JD JD WHERE   
H.GRID_ID = WG.ID  AND WG.SQID = SQ.ID AND SQ.JDID = JD.ID  GROUP BY WG.WGMC,WG.WGBM,JD.JDMC ) C WHERE C.HS<70) D,T_SHSJGL_GZ GZ  
WHERE GZ.SZWG=D.WGBM  
GROUP BY D.WGMC, D.JDMC, D.HS  
ORDER BY D.HS ASC  

2.
Sql代码  
SELECT C.WGMC WGMC,C.JDMC JDMC,C.HS HS,COUNT(C.ZBM) ZS  
FROM (SELECT COUNT(2) HS,WG.WGMC WGMC,GZ.ZBM ZBM,JD.JDMC  JDMC  
FROM T_SHSJGL_GH H, T_SHSJGL_GZ GZ,T_SHSJGL_WG WG,T_SHSJGL_SQ SQ,T_SHSJGL_JD JD  
WHERE H.GRID_ID = WG.ID AND GZ.SZWG=WG.WGBM AND WG.SQID = SQ.ID AND SQ.JDID = JD.ID  GROUP BY WG.WGMC,GZ.ZBM,JD.JDMC ) C   
WHERE C.HS<70  
GROUP BY C.WGMC,C.JDMC,C.HS  
ORDER BY C.HS ASC  

两者功能相同,但是第一个比第二个查询的快很多,具体应该是提前C.HS<70筛选了,然后后面的比较就是在筛选后的结果集里面提取了,所以快吧...以后sql语句如果有条件筛选,就先筛选。