根据相关表上的最大值更新记录

时间:2013-02-02 16:04:17

标签: mysql sql sql-update

我有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中的最大值来更新表A,但仅针对类别2或类别3中表B中的值

MySQL查询可能是什么样的?

1 个答案:

答案 0 :(得分: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