sql---两个查询

1.
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.
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语句如果有条件筛选,就先筛选。

猜你喜欢

转载自java-hulu.iteye.com/blog/1915463