1

我有 2 张桌子

表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,但仅适用于 Category2 或 Category 3 中表 B 中的值

MySQL 查询可能是什么样子?

4

1 回答 1

1
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
于 2013-02-02T16:22:19.163 回答