当前位置: 首页 > 面试题库 >

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

凤棋
2023-03-14
问题内容

我有以下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’的目标,又作为数据的单独源


问题答案:

这是典型的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'
  )
);


 类似资料:
  • 我有下面的查询在mysql中,我想检查如果分支id和年的财务类型从branch_master是等于分支id和年的经理然后更新状态在经理表对分支id在经理 但是犯了错误 表“m1”被指定了两次,既作为“更新”的目标,也作为单独的数据源

  • 问题内容: 我正在努力寻找解决此MySQL问题的方法。我似乎无法理解该怎么做。我有下表。 如果可能的话,我想将问题答案显示为每个结果集的列,如下所示。 任何帮助将非常感激。 谢谢 问题答案: SQLFiddle演示 如果您不清楚问题的数量( 例如Matei Mihai所说的1000个 ),则非常需要动态版本。 SQLFiddle演示 输出值

  • Etity公司 服务 Impl @服务公共类DateFMailServiceImpl实现DateFMailService{ } 存储库 @Repository公共接口DateFMailRepository扩展JpaRepository } 邮件分离器 控制器 保存运行程序 我已经纠正了我的问题。我已经在这里粘贴了所有与我的问题相关的代码。对于初学者,我只想将存储库的查询结果输出到控制台。但在我刚刚

  • 我怀疑存在性能问题,特别是当长时间运行的API击中控制器时。 是否可以将作业作为单独的进程。让spring boot应用程序具有繁重工作的最佳实践是什么。

  • 问题内容: 以下查询(来自此处的Postgres SQL SELECT和UPDATE行为不同 ) 我的阅读方式是: -我们告诉数据库我们正在更新fromemailaddress表 -我们告诉数据库,名为“ call”的字段将设置为true -好的,现在事情变得模糊了。这里实际发生了什么?看来数据库以某种方式在第3 4和5行中获取了查询结果,但是如何告诉它fromemailaddress表中要更新的