【问题标题】:MYSQL Update Column with higher values from other tableMYSQL 更新列具有来自其他表的更高值
【发布时间】:2020-08-04 12:07:50
【问题描述】:

我在 mysql 数据库中有两个表。 表_A

|    id   |  val  |
|----------------|
|    a    |   1   |
|    b    |   5   |
|    c    |   5   |
|    d    |   4   |
|    e    |   5   |
|    f    |   7   |
|----------------|


 TEMPORARY TABLE_B
|----------------|
|    id   |  val  |
|----------------|
|    a    |   4   |
|    b    |   4   |
|    c    |   8   |
|    d    |   8   |
|    e    |   5   |
|    f    |   2   |
|----------------|

 TABLE_A after update
|----------------|
|    id   |  val  |
|----------------|
|    a    |   4   |
|    b    |   5   |
|    c    |   8   |
|    d    |   8   |
|    e    |   5   |
|    f    |   7   |
|----------------|

我想用 Table_B 中的值更新 Table_A,但前提是它们更高。 有人给我sn-p吗?

【问题讨论】:

    标签: mysql sql join sql-update


    【解决方案1】:

    一个选项使用更新/加入语法:

    update table_a a
    inner join (select id, max(val) val from table_b group by id) b
        on b.id = a.id and b.val > a.val
    set a.val = b.val
    

    如果table_b中没有重复的ids,则不需要聚合:

    update table_a a
    inner join table_b b
        on b.id = a.id and b.val > a.val
    set a.val = b.val
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 2018-07-30
      相关资源
      最近更新 更多