Giả sử bạn cần sao chép dữ liệu từ bảng này sang bảng khác. Bạn có thể chèn dữ liệu từ bảng vào bảng khác trong MySQL.
Câu lệnh INSERT INTO SELECT sao chép dữ liệu từ bảng này sang bảng khác. Các hàng hiện có trong bảng mục tiêu không bị ảnh hưởng.
Cú pháp
Chèn dữ liệu từ bảng này sang bảng khác cho tất cả các cột,
INSERT INTO table2 SELECT * FROM table1;
Chèn dữ liệu từ bảng này sang bảng khác cho các cột cụ thể,
INSERT INTO table2 column1, column2.. SELECT column1, column2, .. FROM table1;
Ví dụ
Hãy xem xét 2 bảng mẫu, Người dùng và Khách hàng
Users +------+--------------+-------------+ | id | user_name | location | +------+--------------+-------------+ | 1 | Jim | London | | 4 | Rocky | US | | 7 | Dan | Italy | | 3 | Bill | France | +------+--------------+-------------+
Customers +-------+------------------+--------+------------+ | id | customer_name | age | location | +-------+------------------+--------+------------+ | 11 | John | 23 | US | | 14 | Roger | 36 | London | | 17 | Will | 29 | Spain | | 13 | Bob | 34 | Japan | +-------+------------------+--------+------------+
Chèn dữ liệu từ bảng này sang bảng khác cho một vài cột
mysql> INSERT INTO users (user_name, location) SELECT customer_name, location FROM customers; +------+--------------+-------------+ | id | user_name | location | +------+--------------+-------------+ | 1 | Jim | London | | 4 | Rocky | US | | 7 | Dan | Italy | | 3 | Bill | France | | 11 | John | US | | 14 | Roger | London | | 17 | Will | Spain | | 13 | Bob | Japan | +-------+-------------+-------------+
Chèn dữ liệu từ bảng này sang bảng khác cho một vài cột, chỉ những khách hàng ở ‘Hoa Kỳ’