开发者社区> 问答> 正文

表被指定两次,既作为“ UPDATE”的目标,又作为mysql中数据的单独来源?mysql

我有以下MySQL查询,我要检查,如果分支ID和年度的财务从类型branch_master与平等的分支ID和年的经理,然后更新状态在管理表中对分公司的ID在经理

UPDATE manager as m1 SET m1.status = 'Y' WHERE m1.branch_id IN ( SELECT m2.branch_id FROM manager as m2 WHERE (m2.branch_id,m2.year) IN ( ( SELECT DISTINCT branch_id,year FROM branch_master WHERE type = 'finance' ) ) ) 但出现错误

表'm1'被指定两次,既作为'UPDATE'的目标,又作为数据的单独源

展开
收起
保持可爱mmm 2020-05-17 21:35:22 1120 0
1 条回答
写回答
取消 提交回答
  • 这是典型的MySQL问题,通常可以通过从派生表中进行选择来规避,例如

    FROM manager AS m2 采用

    FROM (select * from manager) AS m2 完整的声明:

    UPDATE manager SET status = 'Y' WHERE branch_id IN ( select branch_id FROM (select * from manager) AS m2 WHERE (branch_id, year) IN ( SELECT branch_id, year FROM branch_master WHERE type = 'finance' ) );来源:stack overflow

    2020-05-17 21:42:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云MySQL云数据库产品体系介绍 立即下载
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载

相关镜像