使用JOIN和GROUP BY更新MySQL表

时间:2019-04-04 11:12:07

标签: 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,它显示了一个错误。

1 个答案:

答案 0 :(得分:1)

没有聚合功能(最小(),最大(),计数()),就无法使用分组依据。

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

并且使用join进行的更新应使用UPDATE .. FROM .. JOIN语法

..