Копирование записей в таблицах MySQL.
Примеры SQL запросов.
Рассмотрим несколько вариантов SQL запросов к базе данных MySql позволяющих копировать данные из одной или нескольких таблиц в таблицу назначения.
Частичное копирование данных в таблицах.
Запрос на копирование данных одной записи из таблицы first в таблицу second полей с одинаковой структурой:
SQL
INSERT INTO `table_first` (`entry_1`, `entry_2`, `entry_3`) SELECT `entry_1`, `entry_2`, `entry_3` FROM `table_second` WHERE `id` = 1
Тоже, но нескольких записей:
SQL
INSERT INTO `table_first` (`entry_1`, `entry_2`, `entry_3`) SELECT `entry_1`, `entry_2`, `entry_3` FROM `table_second` WHERE `id` IN(1,2,3)
Полное копирование данных таблицах.
Если таблицы идентичны то следующий запрос выполнит полное копирование данных между таблицами:
SQL
//Полное копирование данных в таблицах INSERT INTO `table_second` SELECT * FROM `table_first` //Когда нужны только определённые поля INSERT INTO `table_second` (`name`, `alt`, `page`) SELECT `login`, `comment`, `url` FROM `table_first`
Копирование данных таблицах с разной структурой.
Для копирования данных в таблицах с разной структурой подгоняем название и значения полей:
SQL
INSERT INTO `table_second` (`name`, `comment`, `url`, `tems`, `sort`) SELECT `filename` AS `name`, '' AS `comment`, `url`, 'prod' AS `tems`, 1 AS `sort` FROM `table_first`
Копирование с подзапросом в третью таблицу.
SQL
INSERT INTO `table_second` (`name`, `comment`, `url`, `tems`, `sort`) SELECT (SELECT `name` FROM `table_third` WHERE `item_id` = `table_first`.`id`) AS `name`, '' AS `comment`, `url`, 'razdel' AS `tems`, 1 AS `sort` FROM `table_first`
Копирование данных из нескольких таблиц.
SQL
INSERT INTO `table_second` (`user`, `email`, `telephone`) SELECT * FROM ( (SELECT `user`, `email`, `telephone` FROM `table_first`) UNION ( SELECT `user`, `email`, `telephone` FROM `table_third`) )
ТОП 10 случайных публикаций
Сайт разработан студией © WEB-VidST