MySQL UPDATE表列基于其他表中的值

时间:2018-08-11 02:15:34

标签: mysql sql-update temp-tables

我必须根据其他表中的值更新表中的列值。这就是我所拥有的:

TABLE_A
| ---------------- |
| id | val ||
| ---------------- |
| 1 |一个|
| 2 | b ||
| 3 | c ||
| 4 |一个|
| 5 | b ||
| 6 || c ||
| ---------------- |


临时表_B
| ---------------- |
| id | val ||
| ---------------- |
| 4 |一个|
| 5 | b ||
| 6 || c ||
| ---------------- |


临时表_C
| ---------------------------- |
| id | val1 | val2。|
| ---------------------------- |
| h | 4 | b | |
| k | 4 | e ||
| n | 5 |一个|
| o | 6 || c ||
| p | 6 || d ||
| q | 5 | g ||
| ---------------------------- |


我想做的是:

对于table_a中的每一行,其中(table_a.id = table_b.id)然后
其中(table_a.val = table_c.val2)设置table_a.val = table_c.id

我似乎无法为此编写正确的UPDATE语句。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我相信,遵循这些原则,某些方法将对您有用(使用INNER JOIN

UPDATE table_a A
    INNER JOIN table_b B ON A.id = B.id
    INNER JOIN table_c C ON A.val = C.val2
    SET A.val = C.id