mysql - 使用 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 ,它显示一个错误。
解决方案
如果没有聚合函数(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 语法
..
推荐阅读
- python - 在 tkinter gui 中使用导航栏后的 Matplotlib 实时绘图 relim
- javascript - “单击以使用 Flash”按钮并不总是显示在 Safari 上
- node.js - Firebase 函数仅返回 null
- path - Custom houdini module path
- angular - 我们可以使用角度在 nvd3 强制有向图节点中添加点击事件吗
- java - does it make sense to have a junit test case for user registration?
- c++ - 给 QML 一个 QSharedPointer
或 std::unique_ptr ? - html - 代码标签显示 XML 标记然后在 Chrome 中消失
- ios - SnapKit 和 Dynamic UITableViewCell 布局不正确
- r - 由于非英文字符,dir + file.copy 返回“文件不存在”警告,我该如何解决?