加入 mysql 以更新表

Posted

技术标签:

【中文标题】加入 mysql 以更新表【英文标题】:JOIN mysql for updating the table 【发布时间】:2017-03-11 00:57:30 【问题描述】:

我在mysql中有两个表如下:

表_A

表_B

我需要将 Table_B 连接到 Table_A 并将 BalAmountLC 的值添加到 GLAccount 等于的 Table_A 中。我还需要将其他 GLAccount 值更新为 Table_A 中不存在的 Table_A。

请任何人告诉我这是最好的方法。我觉得我需要使用 RIGHT JOIN。但我不确定。

我被以下查询卡住了:

SELECT Table_A.*,Table_B.*,Table_A.BalAmountLC+Table_B.BalAmountLC as sum FROM Table_A RIGHT OUTER JOIN Table_B ON Table_A.GLAccount=Table_B.GLAccount

谢谢。

【问题讨论】:

【参考方案1】:

所以基本上你需要将 Table_B 中的所有 GLAccount 插入到 Table_A 中,如果它没有在 Table_A 中退出。如果存在,您想将 BalAmountLC 添加到 Table_A

 UPDATE Table_A INNER JOIN Table_B ON (Table_A.GLAccount = Table_B.GLAccount)
 SET Table_A.BalAmountLC = Table_A.BalAmountLC + Table_B.BalAmountLC;

 INSERT INTO Table_A SELECT Table_B.* FROM Table_B LEFT JOIN Table_A
 ON (Table_B.GLAccount = Table_A.GLAccount) WHERE
 Table_A.GLAccount IS NULL;

【讨论】:

感谢您的回答。你拯救了我的一天:)

以上是关于加入 mysql 以更新表的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 - 表单提交以更新 MySQL 表

加入 3 个表以更新和插入

更新 MySQL 表以双重聚合构造,这取决于表本身

Mysql根据不同的行更新表中的行值

MySQL,一次查询更新多个表

依赖于多个表的可更新视图