sql 原表后追加查询的结果
时间: 2024-10-04 22:03:32 浏览: 21
SQL中,如果你想要在一个原始表的基础上执行后追加查询(即不替换原表内容而是新增数据),你可以使用`UNION ALL`、`INSERT INTO SELECT`或者`JOIN`结合`UNION`操作来实现。以下是三种常见的方法:
1. **UNION ALL**:
```sql
INSERT INTO original_table
SELECT * FROM query_results;
```
这将把`query_results`的结果添加到`original_table`的末尾,不会删除原有的记录。
2. **INSERT INTO SELECT**:
```sql
INSERT INTO original_table
SELECT column1, column2, ... FROM query_results;
```
如果只需要部分列的数据,可以指定这些列名。如果`query_results`的所有列都适合插入`original_table`,则无需指定列名。
3. **JOIN + UNION** (假设你有一个临时表temp):
```sql
CREATE TEMPORARY TABLE temp AS SELECT * FROM query_results;
INSERT INTO original_table
SELECT * FROM temp WHERE NOT EXISTS (SELECT 1 FROM original_table WHERE condition);
```
这种方法创建了一个临时表,然后只将那些在`original_table`中不存在的新记录插入。
阅读全文