SQL:通过将两列相互映射来更新表

All*_*n S 8 mysql sql database

我有以下两个表:

        Table A
+-------------------+
|___User___|__Value_|
|    3     |  a     |
|    4     |  b     |
|    5     |  c     |
|____6_____|__d_____|



        Table B
+-------------------+
|___User___|__Value_|
|    1     |        |
|    4     |        |
|    5     |        |
|____9_____|________|
Run Code Online (Sandbox Code Playgroud)

我的工作是user从表A(及其对应的value)中获取,然后将其映射到表B并在那里插入这些值.因此,从上面的示例中,在运行脚本后,表B应如下所示:

        Table B
+-------------------+
|___User___|__Value_|
|    1     |        |
|    4     |  b     |
|    5     |  c     |
|____9_____|________|
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果表A包含300,000个条目而表B包含70,000个条目,我如何构建一个能够以有效的方式为我执行此操作的SQL查询?

注意:在表A中,User字段不是唯一的,Value字段也不是唯一的.但是在表B中,UserValue字段都是唯一的,不应出现多次.两个表的主键都不是.

sca*_*dge 7

可能是这个

update table_b as b 
inner join table_a as a on a.User = b.User
set b.value = a.value 
Run Code Online (Sandbox Code Playgroud)