# SQL: INSERT INTO SELECT Syntax That Works Everywhere

> Use INSERT INTO table (columns) SELECT columns FROM other_table with an optional WHERE clause, a syntax supported across MySQL, Postgres, and SQL Server

**URL:** https://sentry.io/answers/in-sql-how-to-insert-into-values-from-a-select-from-in-every-database/

---

## The Problem

Although SQL has a series of standards, managed by ISO, all the database servers differ slightly in their support and implementation. If you want to insert rows into one table from another, what syntax should you use that will work in any implementation of SQL, such as MySQL, PostgreSQL, and SQL Server?

Assume you have the following two tables in your database:

```sql
CREATE TABLE Person1
(
    Id    INT PRIMARY KEY,
    Name  VARCHAR(255)
);

CREATE TABLE Person2
(
    Id    INT PRIMARY KEY,
    Name  VARCHAR(255)
);

INSERT INTO Person1(Id, Name)
VALUES (1, 'Amir'),
       (2, 'Sofia'),
       (3, 'Aya'),
       (4, 'Mateo');

INSERT INTO Person2(Id, Name)
VALUES (5, 'Leila'),
       (6, 'Yara'),
       (7, 'Ndidi'),
       (8, 'Santiago');
```

## The Solution

The most universal syntax to import rows from Person2 into Person1 is the following:

```sql
INSERT INTO
    Person1 (Id, Name)
SELECT
    Id, Name
FROM
    Person2
WHERE
    Person2.Id > 6
```

---

*Source: [sentry.io/answers/in-sql-how-to-insert-into-values-from-a-select-from-in-every-database/](https://sentry.io/answers/in-sql-how-to-insert-into-values-from-a-select-from-in-every-database/)*
