insert into select from union all select from
时间: 2023-12-02 12:41:44 浏览: 91
insert into select from union all select from是一种将多个表中的数据合并后插入到目标表中的方法。具体来说,它的语法如下:
```sql
INSERT INTO table_name (column1, column2, column3, ...)
SELECT expression1, expression2, expression3, ...
FROM table1
UNION ALL
SELECT expression1, expression2, expression3, ...
FROM table2
UNION ALL
SELECT expression1, expression2, expression3, ...
FROM table3
...
```
其中,table_name是目标表的名称,column1, column2, column3, ...是目标表中要插入的列的名称,expression1, expression2, expression3, ...是要插入的值或者要进行计算的表达式,table1, table2, table3, ...是要合并的源表的名称。
这种方法可以大大提高插入数据的效率,因为它只需要执行一次插入操作,而不是多次。同时,使用UNION ALL可以保证合并后的数据不会出现重复。
举个例子,假设我们有三个表A、B、C,它们的结构和数据如下:
表A:
| id | name |
|----|-------|
| 1 | Alice |
| 2 | Bob |
表B:
| id | name |
|----|---------|
| 3 | Charlie |
| 4 | David |
表C:
| id | name |
|----|--------|
| 5 | Edward |
| 6 | Frank |
现在我们想要将这三个表中的数据合并后插入到一个新表中,可以使用以下SQL语句:
```sql
INSERT INTO new_table (id, name)
SELECT id, name FROM A
UNION ALL
SELECT id, name FROM B
UNION ALL
SELECT id, name FROM C;
```
执行完这条语句后,new_table中的数据如下:
| id | name |
|----|---------|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
| 4 | David |
| 5 | Edward |
| 6 | Frank |
阅读全文