欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

多张表作联合查询的语句,能否优化

更新时间: 2014-01-05 02:11:00 责任编辑: Author_N1

 

多张表做联合查询的语句,能否优化
语句如下

SELECT a.item_desc,a.targer_org_code,a.targer_sub_code,a.send_date, '调拨入库' ordertype ,a.txn_number,d.line_status
FROM tg_org_transfer a LEFT JOIN tg_record b ON a.txn_number=b.recordcode AND a.item_num=b.item_num 
LEFT JOIN tg_barcode_history c ON a.txn_number=c.billcode AND a.item_num=c.item_num INNER JOIN tg_org_transfer_lines@BARCODE01_ERP01 d ON a.line_id=d.line_id
WHERE b.IDX IS NULL AND send_date>to_date('2013-3-6','yyyy-mm-dd') AND send_date<to_date('2013-3-8','yyyy-mm-dd')

--参考方法--
不知是否要求必须一条语句完成查询,若无要求可这样:
1.对a表使用条件过滤得到尽量少记录
  WHERE send_date > to_date('2013-3-6', 'yyyy-mm-dd')
   AND send_date < to_date('2013-3-8', 'yyyy-mm-dd')
2.做inner join d 表
3.left join b 表
第二第三步可能需要根据实际数据做先后调整
总的思路就是先减少数据量再关联
c 表的作用没看出来。。。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6666/
本文WWW.DOC100.NET DOC100.NET版权所有。