2017-07-07 48 views
0

我想更新表,並得到以下錯誤消息:如何更新嵌套查詢中使用的表格?

您不能指定目標表「nodeassociation」的更新在FROM子句

這是關係到更新表它正在嵌套或內部子查詢中使用。

這是我的SQL查詢:

UPDATE nodeassociation 
SET sink_node_id = 11608 
WHERE sink_node_entity = 'WorkflowScheme' 
    AND source_node_id IN (SELECT source_node_id 
         FROM nodeassociation 
         WHERE SINK_NODE_ENTITY = 'WorkflowScheme' 
          AND sink_node_id = 11604 
          AND SOURCE_NODE_ID IN (SELECT source_node_id 
                FROM nodeassociation 
                WHERE association_type = 'ProjectCategory' 
                AND sink_node_id = 11400)); 

內查詢運行正常分開。

任何人都可以請告訴我如何解決此查詢?

感謝

回答

0

你可以從你的子查詢創建臨時表,然後在更新中使用它。

+0

嗨,你能告訴我該怎麼做嗎?我嘗試在第二個內部查詢的末尾添加子句「as TempTable」,但它不起作用。 – Tbas

+0

創建臨時表: '創建臨時表tmp_tbl_name作爲select ....;' 運行更新: '更新tbl1其中id in(從tmp_tbl_name選擇id) –