【问题标题】:MySQL update query with subquery using max functionMySQL 使用 max 函数使用子查询更新查询
【发布时间】:2020-03-20 04:18:33
【问题描述】:

谁能看出下面的查询有什么问题?

update sub set name='dd' where salary=(select max(salary) from sub);

在执行发现错误并且 MariaDB 这么说之后,

SQL 查询:文档

更新子集 name='dd' wheresalary=(select max(salary) from sub)

MySQL 说:文档

\#1093 - 表 'sub' 被指定了两次,既作为 'UPDATE' 的目标,又作为数据的单独源

【问题讨论】:

    标签: mysql sql sql-update mariadb inner-join


    【解决方案1】:

    这种语法在 MySQL 中是不允许的。您可以改用join

    update sub s
    inner join (select max(salary) salary from sub) m on m.salary = s.salary
    set s.name = 'dd'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多