MySQL: Как использовать запрос оператора INSERT INTO SELECT
Из этого руководства вы узнаете, как использовать MYSQL-запрос INSERT INTO SELECT для вставки данных в таблицу из результата оператора SELECT. Обычно он используется для копирования из одной таблицы MySQL в другую.
Как использовать запрос оператора INSERT INTO SELECT
В MySQL - INSERT INTO SELECT запрос оператора обычно используется для копирования данных из одной таблицы и вставки их в другую таблицу.
Синтаксис
Этот запрос, скопирует все столбцы из одной таблицы во вторую таблицу:
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
Этот запрос, скопирует некоторые столбцы (только выбранный столбец) из одной таблицы во вторую таблицу:
INSERT INTO table2 (column1, column2, column3, …)
SELECT column1, column2, column3, …
FROM table1
WHERE condition;
Запрос оператора INSERT INTO SELECT очень полезен, когда вы хотите скопировать данные из одной таблицы в другую.
Пример использования оператора INSERT INTO SELECT в MySQL
Предположим, у нас есть следующая таблица поставщиков со следующей структурой.
CREATE TABLE vendors(
id INT AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
phone VARCHAR(50),
addressLine1 VARCHAR(50),
addressLine2 VARCHAR(50),
city VARCHAR(50),
state VARCHAR(50),
postalCode VARCHAR(50),
country VARCHAR(50),
customer_id INT
PRIMARY KEY (id)
);
Чтобы создать таблицу поставщиков, вам просто нужно выполнить вышеуказанный запрос MySQL.
Теперь вам нужно включить клиентов в таблицу Vendor из таблицы Customer. Следующий оператор MySQL копирует “Vendors” в “Customers”.
INSERT INTO vendors (
name,
phone,
addressLine1,
addressLine2,
city,
state,
postalCode,
country,
customer_id
)
SELECT
name,
phone,
addressLine1,
addressLine2,
city,
state ,
postalCode,
country,
customer_id
FROM
customers;
Следующий запрос MySQL копирует только поставщиков из Великобритании в “Customers” (Клиенты).
INSERT INTO vendors (
name,
phone,
addressLine1,
addressLine2,
city,
state,
postalCode,
country,
customer_id
)
SELECT
name,
phone,
addressLine1,
addressLine2,
city,
state ,
postalCode,
country,
customer_id
FROM
customers
WHERE
country = 'UK';
После вставки данных с помощью запроса MySQL INSERT INTO SELECT следующий запрос возвращает данные из таблицы vendors:
SELECT * FROM vendors;
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.