首页 > 解决方案 > 使用 JOIN 和 GROUP BY 更新 MySQL 表

问题描述

我正在尝试通过加入其他两个表来更新表,但我需要按更新表的 ID 进行分组,例如:

UPDATE T1
SET T1.AForeignID = T3.ID
FROM TableOne T1 
LEFT JOIN TableTwo T2 ON T2.ID = T1.BForeignID 
LEFT JOIN TableThree T3 ON T3.Code = T2.Code AND T3.ACode  = T1.ACode 
GROUP BY T1.ID

但我不能使用 GROUP BY ,它显示一个错误。

标签: mysql

解决方案


如果没有聚合函数(min()、max()、count(),则不能使用 group by。

GROUP BY 子句定义用于执行聚合的列

UPDATE T1
FROM TableOne T1 
LEFT JOIN TableTwo T2 ON T2.ID = T1.BForeignID 
LEFT JOIN TableThree T3 ON T3.Code = T2.Code AND T3.ACode  = T1.ACode 
SET T1.AForeignID = T3.ID

并且带有连接的更新应该使用 UPDATE .. FROM .. JOIN 语法

..


推荐阅读