У меня есть следующие две таблицы:SQL: таблица Update картированием два столбца друг с другом
Table A
+-------------------+
|___User___|__Value_|
| 3 | a |
| 4 | b |
| 5 | c |
|____6_____|__d_____|
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | |
| 5 | |
|____9_____|________|
Моя работа заключается принять user
из таблицы А (и их correspondings value
), а затем отобразить его в таблице B и вставьте эти значения там. Таким образом, из приведенного выше примера в таблице B должен выглядеть следующим образом после выполнения сценария:
Table B
+-------------------+
|___User___|__Value_|
| 1 | |
| 4 | b |
| 5 | c |
|____9_____|________|
Мой вопрос, как я могу построить SQL запрос, который будет делать это для меня в эффективный способ, если таблица А содержит 300.000 + записи и таблица B содержит 70 000 записей?
ПРИМЕЧАНИЕ: В таблице А User
поля не является уникальным и ни один не Value
поля. Однако в таблице B оба поля User
и Value
являются уникальными и не должны отображаться более одного раза. Также не являются первичными ключами для обеих таблиц.
Итак, если у вас есть 2 значения в соответствии с 1 пользователем в b, какое одно из этих значений должно использоваться для обновления? – Mihai
Если в таблице A указано несколько строк для одного и того же 'пользователя', значение' '' этой строки должно быть скопировано в B? –
Хороший вопрос @AlanHadsell - не имеет значения, какая строка скопирована - это может быть либо первое вхождение, либо последнее из всего, что находится в столбце «значение» для таблицы A – user1775598