mysql - 如何更新嵌套查询中使用的表?

标签 mysql

我正在尝试更新表格并收到以下错误消息:

You can't specify target table 'nodeassociation' for update in FROM clause

这与更新嵌套或内部子查询中使用的表有关。

这是我的 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));

内部查询单独运行良好。

有人可以告诉我如何解决这个查询吗?

谢谢

最佳答案

您可以从子选择中创建临时表,然后在更新中使用它。

关于mysql - 如何更新嵌套查询中使用的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971363/

相关文章:

javascript - ajax 提交的页面上不显示错误

MySQL多表SELECT

php - 自动从 MySQL 检索数据

mysql - 自然连接表

python - 通过 Paramiko SSH 的 SQLAlchemy

mysql - Sequelize 可以处理与一个表关联的多个键吗?

mysql - UTF-8字符有问题;我看到的不是我存储的

mysql - 无法在ubuntu上重置mysql密码

mysql - 在外部查询结果中使用内部查询的查询顺序

mysql - 按城市查找位置的最佳实践