Обновить / добавить из одной таблицы в другую
В базе данных имеется две таблицы table_A и table_B.
table_A:
id | Vendor | Model | Size | Type
1 | ASUS | A68HM | Micro-ATX | AMD
2 | GIGABIT | GA-A320M-S2 | Micro-ATX | AMD
3 | MSI | A320M PRO-E | Micro-ATX | AMD
table_B:
id | Vendor | Model
1 | Biostar | A68MHE
2 | ASRock | A320M-DVS
3 | ASRock | H110M-DGS
4 | MSI | A320M PRO-E
Необходимо забрать данные из table_B и поместить в table_A, сравнивая значения по столбцу Model, если в table_A есть такая модель - не добавлять запись, нету модели - добавить строку. В итоге должно быть на выходе так table_A:
id | Vendor | Model | Size | Type
1 | ASUS | A68HM | Micro-ATX | AMD
2 | GIGABIT | GA-A320M-S2 | Micro-ATX | AMD
3 | MSI | A320M PRO-E | Micro-ATX | AMD
4 | Biostar | A68MHE | |
5 | ASRock | A320M-DVS | |
6 | ASRock | H110M-DGS | |
Пытался реализовать запросом:
INSERT INTO table_A (Model, Vendor)
SELECT Model, Vendor FROM table_B
WHERE Model NOT IN (SELECT Model FROM table_A)
Пишет, что 0 записей изменено.
Что не так, подскажите, пожалуйста.
Большое спасибо!
Ответы (1 шт):
Автор решения: Alex Rebell
→ Ссылка
Как говориться: Не прошло и пол года. Вроде такой запрос работает хорошо:
INSERT INTO table_A (Model, Vendor)
SELECT table_B.Model, table_B.Vendor FROM table_B
WHERE table_B.Model NOT IN
(SELECT Model FROM table_A WHERE Model IS NOT NULL)