У меня есть 2 таблицы:
table1 - IP, SN, версия, дата, рабочий
table2 - IP, SN, Vesrion
Я хочу добавить в таблицу2 только IP-адреса, которых нет в таблице уже из таблицы1. И обновите версию SN + в соответствии с таблицей 1 (только новые строки, которые я добавил)
Я нашел здесь, как сделать обновление в соответствии с IP из другой таблицы, но я не нашел, как добавить его без дубликата.
Это то, что я хочу сделать:
table 1
IP
10.0.0.5
10.0.0.6
10.0.0.7
table2
IP
10.0.0.5
192.168.30.11
1.1.1.1
Таким образом, в конце функции table1 не изменится, а table2 будет:
IP
10.0.0.5
192.168.30.11
1.1.1.1
10.0.0.6
10.0.0.7
Благодарю.
Используйте NOT EXISTS
чтобы исключить строки с IP
уже находящиеся в table1
.
INSERT INTO table1
(IP)
SELECT t1.ROU_IP
FROM routers t1
WHERE NOT EXISTS (SELECT *
FROM table1 t2
WHERE t2.IP = t1.ROU_IP);
Вот два отдельных запроса, чтобы выполнить эту работу.
Добавить записи в таблицу 2, которых нет
INSERT INTO table2 (SELECT IP, SN, Vesrion FROM table1 where table1.IPnot in (select IPfrom table2));
Обновление существующих данных
UPDATE TABLE table2 INNER JOIN table1 ON table2.IP = table1.IP SET table2.SN = table1.SN, table2.vesion = table1.version WHERE table1.version <> table2.version OR table2.SN <> table1.SN