2017-07-07 47 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) –