SQL INSERT INTO SELECT Function
Quick summary: The SQL INSERT INTO SELECT statement copies data from one table into another.
SQL INSERT INTO SELECT Syntax
INSERT INTO table2 (column1, column2) SELECT column1, column2 FROM table1 WHERE condition
SQL
SQL INSERT INTO SELECT Basic examples
INSERT INTO archive_users SELECT * FROM users WHERE deleted_at IS NOT NULL;
SQL
Output:
Archived users inserted
Copies rows matching a condition.
SQL INSERT INTO SELECT Real-world usage
INSERT INTO reports (user_id, total)
SELECT user_id, SUM(total) FROM orders GROUP BY user_id;
SQL
Output:
Aggregated report rows
Creates summary tables.
SQL INSERT INTO SELECT Edge cases
INSERT INTO table_a SELECT * FROM table_b;
SQL
Output:
SQL error if schemas differ
Column counts and types must match.
SQL INSERT INTO SELECT Common mistakes
Mismatched column definitions
Schemas must align.
Incorrect
INSERT INTO a SELECT * FROM b;
Correct
INSERT INTO a (col1,col2) SELECT col1,col2 FROM b;
Explicitly map columns.
SQL INSERT INTO SELECT Frequently Asked Questions
What is INSERT INTO SELECT?
Inserts data into a table from another query.
Use case?
Copy or transform data.
Syntax?
INSERT INTO table SELECT ...
Requires same structure?
Compatible columns required.
Common mistake?
Column mismatch.
Performance?
Efficient for bulk operations.
Handles large data?
Yes.
Supports WHERE?
Yes.
Safe?
Use transactions.
Used in migrations?
Yes.
Alternative?
Manual inserts.
Best practice?
Validate source query.