У меня есть две таблицы, как показано ниже.
Табл. A:
ResultID(PK) | ImportDate | Comment1
-------------------------------------
101 | 25-09-2019 | One
--------------------------------------
102 | 25-09-2019 | Two
--------------------------------------
103 | 25-09-2019 | Three
----------------------------------------
Таблица B:
ResultID(PK) | ImportDate | Comment2
-------------------------------------
101 | 26-09-2019 | new one
--------------------------------------
104 | 26-09-2019 | four
--------------------------------------
Таким образом, результат должен выглядеть следующим образом:
Таблица A:
ResultID(PK) | ImportDate | Comment1
-------------------------------------
101 | 26-09-2019 | new one
--------------------------------------
102 | 25-09-2019 | Two
--------------------------------------
103 | 25-09-2019 | Three
--------------------------------------
104 | 26-09-2019 | four
--------------------------------------
Вопрос: Я хочу получить итоговую таблицу A, как указано вышеесли ResultID
сопоставлено между таблицей A и таблицей B, я хочу обновить все столбцы таблицы A из таблицы B для этого ResultID
.Если ResultID
из таблицы B отсутствует в таблице A, вставьте его в таблицу A.
Что я пробовал в MySQL:
UPDATE TableA
SET comment1=
(SELECT comment2 FROM TableB WHERE TableA.ResultId=TableB.ResultId);
Над решениемОбновление таблицы выполняется только для одного столбца. Я также пытался использовать ссылку на обновление нескольких столбцов из SQL Server 2005 реализации MySQL REPLACE INTO? , но обновление нескольких столбцов не работает для моих сценариев.
Для моих реальных сценариев - у меня 40 столбцов и 50 000 строк.
Не могли бы вы дать мне подсказку или решение?Спасибо.