MYSQL запрос для переноса данных из одной таблицы в другую
Пожалуйста, помогите создать запрос в Mysql для переноса данных 1-го конкретного поля для все значений из старой базы данных в новую, по ключевому полю.
Структура такая:
Старая база bd_old.table_old
Новая база bd_new.table_new
В таблицах обеих баз данных есть поле(столбец) 'description'
Нужно из старой базы все значения этого поля перенести в новую.
Есть ключевое поле 'id' значения которого совпадают в обеих базах.
Ответы (2 шт):
Автор решения: teran
→ Ссылка
Используйте UPDATE совместно с JOIN. таким образом сразу отфильтруете все записи, которые имеют соответствия, и только их и обновите
UPDATE t1
INNER JOIN t2 on t2.id = t1.id
SET t1.description = t2.description
Автор решения: PZBird
→ Ссылка
Если значения уже есть в новой базе и речь только про обновление, то можно
- Через джоин
UPDATE `bd_new.table_new` new
INNER JOIN bd_old.table_old old ON new.id = old.id
SET new.description = old.description;
- Через сабквери (в большинстве случаев более ресурсоемкий чем join)
UPDATE `bd_new.table_new` new
SET description = (
SELECT old.description
from bd_old.table_old old
WHERE old.id = new.id
)