台灣最大程式設計社群網站
線上人數
895
 
會員總數:242255
討論主題:187351
歡迎您免費加入會員
討論區列表 >> 其他DB >> 相似的兩段SQL要怎麼整合成一段?
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
相似的兩段SQL要怎麼整合成一段?
價值 : 100 QP  點閱數:355 回應數:0

樓主

ROT
門外漢
0 2
18 1
發送站內信


第一段 :
SELECT POSITION_KEY
FROM (
SELECT A.POSITION_KEY
FROM
TABLE_A A,
TABLE_B B,
TABLE_C C,
TABLE_D D,
WHERE
A.MC_HEADER_ID = B.MASTER_CONFIG_ID
AND A.INVENTORY_ITEM_ID =C.INVENTORY_ITEM_ID
AND C.INSTANCE_ID = D.REMOVED_INSTANCE_ID
AND A.PART_CHANGE_TYPE IN ('R','S')
AND A.LOOKUP_CODE = 'REMOVED'
ORDER BY A.REMOVAL_DATE desc )
WHERE V_ID= X_TABLE.VID
AND ROWNUM = 1) AS GET_REMOVE

第二段:
SELECT ITEM_NAME
FROM (
SELECT D.ITEM_NAME
FROM
TABLE_A A,
TABLE_B B,
TABLE_C C,
TABLE_D D,
WHERE
A.MC_HEADER_ID = B.MASTER_CONFIG_ID
AND A.INVENTORY_ITEM_ID =C.INVENTORY_ITEM_ID
AND C.INSTANCE_ID = D.INSTALL_INSTANCE_ID
AND A.PART_CHANGE_TYPE IN ('I','S')
AND A.LOOKUP_CODE = 'INSTALL'
ORDER BY A.REMOVAL_DATE desc )
WHERE POSITION_KEY = GET_REMOVE.POSITION_KEY
AND ROWNUM = 1) AS GET_INSTALL

===========================================================================

SQL結構大至如上所述
兩段SQL僅差在WHERE的條件有所不同
而GET_INSTALL的參數來源是從GET_REMOVE的結果來的

若直接將GET_REMOVE放入GET_INSTALL中
會因重複使用相同TABLE嚴重影響到效能

像這樣該如何將兩個整合成一段SQL STATMENT?






搜尋相關Tags的文章: [ 整合SQL ] , [ 效能 ] ,
本篇文章發表於2017-05-01 09:35
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.