有人能帮我在db2中重写下面的查询吗
以下是查询有人能帮我在db2中重写下面的查询吗,db2,query-optimization,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 LEF
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;
你能告诉我我能有效地使用第二个查询吗
当你查看查询时,你会发现条件有一点变化。。因此,我们真的需要用union all进行两个查询
我需要调整第二个查询,即任何可能的方法重写第二个查询以获得良好的性能。。有什么帮助吗
提前感谢。我不是db2方面的专家,但sql语句通常是相同的
- UNION ALL返回值也重复
- 仅使用Union,以免返回重复项
- 如果不在联合中添加“()”,它将完成,它将按照您编写联合的顺序执行联合
- 为什么从WEBSS.P0029_位置L中选择,而不同时使用左连接?我会使用两个左连接,是吗
联合
,而只是调整条件。哦,这两个是不等价的,UNION
版本执行(A和B)或(C和D)
,而另一个版本执行(A或B)和(C或D)
(大致)。