Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет.
Вот такая проблема.
Есть 2 таблицы.
Одна из них постоянно обновляется и надо сделать так, чтобы во вторую таблицу из первой записывались только те данные, которых еще в ней нет.
Сравнение можно проводить по одному полю.
Кто подскажет как это сделать?
Неактивен
INSERT INTO table_2 SELECT t1.* FROM table_1 t1 LEFT JOIN table_2 t2 ON t1.one_field = t2.one_field WHERE t2.one_field IS NULL;
Неактивен
Спасибо, попробую
Неактивен
Scorpion написал:
Одна из них постоянно обновляется
Если изменение идет типа UPDATE table_1 SET one_field = ... WHERE ... и есть поле auto_increment (не one_field), то будет Duplicate key error. Для устранения, нужно вместо t1.* писать перечисление полей за исключением primary key.
Если `table_1`.`one_field` не уникально, то при отсутствии в `table_2`.`one_field` данного значения будут записаны все дубликаты, имеющиеся в данный момент, т.е. результат зависит от времени выполнения запроса. Например, при пустой table_2 будут записаны все дубликаты.
Неактивен