我有以下两个表:SQL:通过映射更新表中的两列彼此
Table A
+-------------------+
|___User___|__Value_|
| 3 | a |
| 4 | b |
| 5 | c |
|____6_____|__d_____|
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | |
| 5 | |
|____9_____|________|
我的工作是把user
从表A(及其correspondings value
),然后将其映射到表B并在那里插入这些值。所以从上面的例子表B应该是这样的运行脚本后:
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | b |
| 5 | c |
|____9_____|________|
我的问题是如何构建一个SQL查询,将在一个有效的方式做到这一点对我来说,如果表A中包含30万+条目和表B包含70,000个条目?
备注:在表A中User
字段不是唯一的,也不是Value
字段。但是在表B中,User
和Value
字段都是唯一的,不应多次出现。这两个表都不是主键。
所以,如果你有一个对应的b值为1的用户有2个值其中哪一个值应该用于更新? – Mihai
如果表A中同一'user'有多行,哪行的'value'应复制到B? –
好问题@AlanHadsell - 无论哪一行被复制都无关紧要 - 它可以是表A的“值”列中的第一个或最后一个值。 – user1775598