mysql - 根据相关表中的最大值更新记录

标签 mysql sql sql-update

我有两张 table

表A如下:

ID NAME VALUE
1  abc  0
2  lmn  0
3  xyz  0

B表如下:

ID SUB_GROUP   VALUE
1  Category 1  10
1  Category 2  4
1  Category 3  8
1  Category 4  12
3  Category 1  6
3  Category 2  14
3  Category 3  0
3  Category 4  3

我想通过匹配 ID 列将其 VALUE 列设置为表 B 中的最大 VALUE 来更新表 A,但仅针对表 B 中类别 2 或类别 3 中的值

MySQL 查询可能是什么样的?

最佳答案

UPDATE  tableA a
        INNER JOIN
        (
            SELECT  ID, MAX(Value) max_val
            FROM    tableB
            WHERE   SUB_GROUP IN ('Category 2','Category 3')
            GROUP   BY ID
        ) b ON a.ID = b.ID
SET a.VALUE = b.Max_Val

关于mysql - 根据相关表中的最大值更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14663719/

相关文章:

sql - PostgreSQL 9.3 : Display result in specific format using array_agg function

mysql - 使用日期时间列中的日期查询 mysql 中的数据

python - mysqldb : error with Select/execute/escape_string

mysql - 我的 UPDATE CASE 查询有什么问题?

MySQL |更新查询以填充子项

postgresql - Postgres - 来自 CLI 的更新命令

mysql - ruby on Rails before_save 增加表的不同列

c# - 如何使用自动增量键和 SqlDataAdapter 来添加数据库新行

MySQL 查询时刻表信息

python - 为什么 Python 的 DB-API 中的连接没有 "begin"操作?