sql 优化

这是取两个数据的并集,通常我们这么写,看着太臃肿了,心烦,试着优化了一下,请看优化后的
(SELECT  M.G_ID,
               M.G_RSCNAME,
               M.G_RSCDISPLAYNAME,
               M.G_RSCCODE,
               M.G_RSCVERSION,
               M.G_RSCURL,
               M.G_RSCTYPE,
               M.G_ISAUTH,
               M.G_SORT,
               M.G_DEVELOPER,
               M.G_APPLYSTATE,
               E.G_EMPLOYEENAME AS G_CREATUSER,
               M.G_CREATTIME,
               M.G_UPDATEUSER,
               M.G_REMARK,
               M.G_UPDATETIME,
               M.G_ISQUICK,
               M.G_CREATUSER CREATEUSERID
 FROM JCS.T_RESOURCE M LEFT JOIN JCS.T_EMPLOYEE E ON M.G_CREATUSER = E.G_ID
 WHERE M.G_DELSTATE = '0' AND m.G_RSCTYPE = '1')
UNION
(SELECT  M.G_ID,
               M.G_RSCNAME,
               M.G_RSCDISPLAYNAME,
               M.G_RSCCODE,
               M.G_RSCVERSION,
               M.G_RSCURL,
               M.G_RSCTYPE,
               M.G_ISAUTH,
               M.G_SORT,
               M.G_DEVELOPER,
               M.G_APPLYSTATE,
               E.G_EMPLOYEENAME AS G_CREATUSER,
               M.G_CREATTIME,
               M.G_UPDATEUSER,
               M.G_REMARK,
               M.G_UPDATETIME,
               M.G_ISQUICK,
               M.G_CREATUSER CREATEUSERID
 FROM JCS.T_RESOURCE M
      LEFT JOIN JCS.T_EMPLOYEERES er ON er.G_RESID = M.G_ID
      LEFT JOIN JCS.T_EMPLOYEE E ON er.G_EMPLOYEEID = E.G_ID
 WHERE M.G_DELSTATE = '0' AND M.G_RSCTYPE = '1' AND er.G_EMPLOYEEID = 'JCT012016050609403600000001')

优化后的结果

SELECT   M.G_ID,
               M.G_RSCNAME,
               M.G_RSCDISPLAYNAME,
               M.G_RSCCODE,
               M.G_RSCVERSION,
               M.G_RSCURL,
               M.G_RSCTYPE,
               M.G_ISAUTH,
               M.G_SORT,
               M.G_DEVELOPER,
               M.G_APPLYSTATE,
               E.G_EMPLOYEENAME AS G_CREATUSER,
               M.G_CREATTIME,
               M.G_UPDATEUSER,
               M.G_REMARK,
               M.G_UPDATETIME,
               M.G_ISQUICK,
               M.G_CREATUSER CREATEUSERID
 FROM JCS.T_RESOURCE M LEFT JOIN JCS.T_EMPLOYEE E ON M.G_CREATUSER = E.G_ID
  LEFT JOIN JCS.T_EMPLOYEERES er ON er.G_EMPLOYEEID='JCT012016050609403600000001' and  M.G_ID = er.G_RESID 
      
 WHERE M.G_DELSTATE = '0' AND m.G_RSCTYPE = '1' or M.G_ID = er.G_RESID 
是不是爽多了,easy is  beautiful !谢谢支持!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值