with as 多表 结合 insert into
时间: 2023-12-01 08:43:13 浏览: 300
`WITH AS`语句可以创建一个临时的命名查询,它可以在后续的查询中被引用。结合`INSERT INTO`语句,可以将查询结果插入到指定的表中。以下是一个示例:
假设我们有两个表`t1`和`t2`,它们的结构如下:
```sql
CREATE TABLE t1 (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE t2 (
id INT PRIMARY KEY,
age INT
);
```
我们可以使用`WITH AS`语句创建一个临时查询,将`t1`和`t2`表中的数据联合起来:
```sql
WITH temp AS (
SELECT t1.id, t1.name, t2.age
FROM t1
JOIN t2 ON t1.id = t2.id
)
```
然后,我们可以使用`INSERT INTO`语句将查询结果插入到一个新表中:
```sql
INSERT INTO t3 (id, name, age)
WITH temp AS (
SELECT t1.id, t1.name, t2.age
FROM t1
JOIN t2 ON t1.id = t2.id
)
SELECT id, name, age
FROM temp;
```
这个语句将`t1`和`t2`表中的数据联合起来,并将结果插入到一个名为`t3`的新表中。
阅读全文