我有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查询可能是什么样的?
答案 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