SQL INSERT INTO SELECTStatements
With SQL, you can copy information from one table to another.
The INSERT INTO SELECT statement copies data from one table and inserts the data into an existing table.
SQL INSERT INTO SELECT Statement
The INSERT INTO SELECT statement copies data from one table and inserts the data into an existing table. Any existing rows in the target table will not be affected.
SQL INSERT INTO SELECT Syntax
We can copy all columns from one table and insert them into another existing table:
SELECT * FROM table1;
Or we can copy only the specified columns and insert them into another existing table:
(column_name(s))
SELECT column_name(s)
FROM table1;
Demo Database
In this tutorial, we will use the EXAMPLE sample database.
The following is the data selected from the "Websites" table:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | Example | http://www.example.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
The following is the data from the "apps" APP:
mysql> SELECT * FROM apps; +----+------------+-------------------------+---------+ | id | app_name | url | country | +----+------------+-------------------------+---------+ | 1 | QQ APP | http://im.qq.com/ | CN | | 2 | 微博 APP | http://weibo.com/ | CN | | 3 | 淘宝 APP | https://www.taobao.com/ | CN | +----+------------+-------------------------+---------+ 3 rows in set (0.00 sec)
SQL INSERT INTO SELECT Examples
Copy the data from "apps" and insert it into "Websites":
Example
SELECT app_name, country FROM apps;
Only copy the data with id=1 into "Websites":
Example
SELECT app_name, country FROM apps
WHERE id=1;