我有以下兩個表: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