У меня есть две таблицы, как показано ниже.
Табличка A:
ResultID | ImportDate | Comment1
----------------------------------------------
101 | 25-09-2019 | One in Table A
----------------------------------------------
101 | 25-09-2019 | One copy in Table A
-----------------------------------------------
102 | 25-09-2019 | Two in Table A
-----------------------------------------------
103 | 25-09-2019 | Three in Table A
-----------------------------------------------
Таблица B:
ResultID | ImportDate | Comment2
------------------------------------------
101 | 26-09-2019 | One in Table B
------------------------------------------
101 | 26-09-2019 | One copy in Table B
------------------------------------------
104 | 26-09-2019 | four in Table B
-------------------------------------------
Таким образом, результат должен выглядеть следующим образом:
Таблица A:
ResultID | ImportDate | Comment1
---------------------------------------------
101 | 26-09-2019 | One in Table B
---------------------------------------------
101 | 26-09-2019 | One copy in Table B
--------------------------------------------
102 | 25-09-2019 | Two in Table A
--------------------------------------------
103 | 25-09-2019 | Three in Table A
---------------------------------------------
104 | 26-09-2019 | four in Table B
-------------------------------------------
Вопрос: Я хочу получить итоговую таблицу A, как указано вышеесли ResultID
сопоставлено между таблицей A и таблицей B, я хочу обновить все столбцы таблицы A из таблицы B для этого ResultID
.Если ResultID
из таблицы B отсутствует в таблице A, вставьте его в таблицу A.
Примечание: ResultId
не является первичным ключом в обеих таблицах.
Что я пробовал в MySQL: Если ResultId
является первичным ключом, ниже работает решение, но я хочу найти решение, когда ResultID
не является первичным ключом.
INSERT INTO TableA (ResultID, ImportDate, Comment1)
SELECT ResultID, ImportDate, Comment2 FROM TableB
ON DUPLICATE KEY UPDATE
ImportDate = VALUES(ImportDate),
Comment1 = VALUES(Comment1);
Для моих реальных сценариев - у меня 40 столбцов и 50 000 строк.
Не могли бы вы дать мне подсказку или решение?Спасибо.