任何人都可以帮我在db2中重写下面的查询

时间:2012-11-26 08:52:48

标签: db2 query-optimization

以下是查询

select *
FROM 
WEBSS.P0022_INVENTORY_ACTIVITY_LOG I LEFT OUTER JOIN WEBSS.P0029_LOCATION L2 ON I.INVT_XFER_LOC_ID = L2.LOC_ID,
WEBSS.P0029_LOCATION L
WHERE 
I.LOC_ID = L.LOC_ID 
UNION ALL 
select *
FROM 
WEBSS.P0022_INVENTORY_ACTIVITY_LOG I LEFT OUTER JOIN WEBSS.P0029_LOCATION L2 ON I.LOC_ID = L2.LOC_ID,
WEBSS.P0029_LOCATION L
WHERE 
I.INVT_XFER_LOC_ID = L.LOC_ID; 

你能告诉我,我能否以有效的方式使用第二次查询

当你查看查询时,你可以发现条件有一个小的变化..所以为此我们真的需要进行两个查询nwith union all ..

我需要调整第二个查询,即...重写第二个查询以获得良好性能的任何可能方式..对此有何帮助?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我不是db2的专家,但sql语句通常是相同的

  • UNION ALL也返回重复
  • 仅使用Union以便不返回重复项
  • 如果您不添加"()"在工会中,它将按照你编写的顺序http://msdn.microsoft.com/en-us/library/ms180026.aspx
  • 完成工会
  • 为什么选择WEBSS.P0029_LOCATION L而不使用左连接?我会使用两个左连接,是