0
我有以下查詢重用選擇查詢結果的Oracle
SELECT ID FROM MARMELADES mrm
where not exists
(SELECT 1 FROM TOYS toys
WHERE mrm.ID = toys.ID
AND mrm.INGREDIENT = toys.INGREDIENT
AND mrm.BOX_TYPE = 2)
AND mrm.BOX_TYPE = 2
它返回幾乎400多個ID的結果,例如[12, 33, 45, ... , 3405]
現在,我想刪除這是從所有的IDS從我的數據庫到處列出。這不僅是MARMELADES和玩具。此外,我有例如35 +表,我可以有這個ID)。
我會很高興,如果這種查詢可以像ALL_UNNEEDED_IDS一些功能提取這樣我就可以這樣使用它:
DELETE FROM ANOTHER_TABLE_1 WHERE ID IN (ALL_UNNEEDED_IDS)
DELETE FROM ANOTHER_TABLE_2 WHERE ID IN (ALL_UNNEEDED_IDS)
DELETE FROM ANOTHER_TABLE_3 WHERE ID IN (ALL_UNNEEDED_IDS)
DELETE FROM ANOTHER_TABLE_4 WHERE ID IN (ALL_UNNEEDED_IDS)
...
DELETE FROM ANOTHER_TABLE_35 WHERE ID IN (ALL_UNNEEDED_IDS)
這是可以做到在Oracle重用這樣的結果?
創建一個臨時表並在其中存儲不需要的ID。 –
如果所有這些表都通過此ID作爲FK進行關聯,聽起來像您應該將它們配置爲級聯刪除。否則,將查詢結果插入臨時表中,然後從所有刪除調用中引用該查詢結果。 – OldProgrammer
看看這個: http://stackoverflow.com/questions/9119465/how-to-reuse-a-large-query-without-repeating-it –