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

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

1

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

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

Копирование нескольких записей:

INSERT INTO `table_a` (`name`, `alt`, `page`) 
SELECT 
	`name`, 
	`alt`, 
	`page` 
FROM 
	`table_b` 
WHERE 
	`id` IN(1,2,3)
SQL
2

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

INSERT INTO `table_b` SELECT * FROM `table_a`
SQL

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

INSERT INTO `table_a` (`name`, `alt`, `page`) 
SELECT 
	`name`, 
	`alt`, 
	`page` 
FROM 
	`table_b` 
SQL
3

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

INSERT INTO `table_b` (`name`, `alt`, `page`, `module`, `sort`)
SELECT
	`filename` AS `name`,
	'' AS `alt`,
	`page`,	
	'prod' AS `module`,
	1 AS `sort`
FROM
	`table_a`
SQL
4
INSERT 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`
SQL
5
INSERT INTO `table_b` (`name`, `email`, `address`)  
SELECT * FROM (
	(SELECT `name`, `email`, `address` FROM `table_a`) 
	UNION 
	( SELECT `name`, `email`, `address` FROM `table_c`)
)
SQL
11.02.2022
22991

Комментарии

, чтобы добавить комментарий.

Другие публикации

Временные таблицы в MySQL
Временные таблицы используются для хранения промежуточных данных при сложных выборках из БД, например при большом количестве JOIN и UNION запросов.
50438
+3
Сортировка в MySQL
В этой статье приведены примеры использования оператора ORDER BY для сортировки записей в MySQL.
46843
+4
Счетчик просмотров страниц с графиком
Для примера возьмем статейный сайт, на нём нужно сделать счетчик просмотров статей, с выводом результатов за день,...
19430
+23
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
28516
+8
Поиск дубликатов MySQL
Сборник запросов для поиска, изменения и удаления дублей в таблице MySQL по одному и нескольким полям.
193336
+25
Шифрование полей в MySQL
В MySQL есть несколько встроенных функций шифрования. Рассмотрим основные на примерах c использованием PHP PDO.
19272
-3