Выполнение копирования записей из одной таблицы в другую MySQL

CMS.BY

В статье предоставлены примеры SQL-запросов для копирования записей из разных таблиц.

Полное копирование

Если таблицы `table_a` и `table_b` полностью одинаковые по структуре, то названия полей можно опустить.

I NSERT INTO `table_b` SELECT * FROM `table_a`

Или указать только нужные поля:

I NSERT INTO `table_a` (`name`, `alt`, `page`) SELECT `name`, `alt`, `page` FROM `table_b`

Частичное копирование

К примеру есть две одинаковые по структуре, нужно из таблицы `table_a` скопировать запись с определенными полями в таблицу `table_b`.

I NSERT INTO `table_a` (`name`, `alt`, `page`) SELECT `name`, `alt`, `page` FROM `table_b` WHERE `id` = 1

Копирование с подзапросом в третью таблицу

I NSERT INTO `table_b` (`name`, `alt`, `page`, `module`, `sort`) SELECT (SELECT `name` FROM `table_c` WHERE `item_id` = `table_a`.`id`) AS `name`, '' AS `alt`, `page`, 'prod' AS `module`, 1 AS `sort` FROM `table_a`

Копирование записей из двух и более таблиц

INSERT INTO `table_b` (`name`, `email`, `address`) SELECT * FROM ( (SELECT `name`, `email`, `address` FROM `table_a`) UNION ( SELECT `name`, `email`, `address` FROM `table_c`) )
Редакция CMS.BY

Редакция CMS.BY

С нами Мир познавать проще и надёжнее

shape

У Вас остались вопросы? Обязательно обратитесь к нам
Мы проконсультируем Вас по любому вопросу в сфере IT

Оставить заявку