📌  相关文章
📜  如何在SQL中追加两个表并将结果放入一个表中?(1)

📅  最后修改于: 2023-12-03 15:38:37.958000             🧑  作者: Mango

如何在SQL中追加两个表并将结果放入一个表中

在SQL中,我们可以使用UNION操作符将两张表追加,并将结果放入一个表中。下面是详细的介绍。

UNION操作符

UNION操作符用于合并两个或多个SELECT语句的结果集,并去除重复行。语法如下:

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2;

UNION操作符会对两个SELECT语句的结果集进行合并,并去除重复行,如果要包含重复行可以使用UNION ALL操作符。

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2;
追加两个表

假设有两张表:table1table2,它们的结构和数据如下:

table1

| id | name | age | | -- | ---- | --- | | 1 | Tom | 18 | | 2 | Jack | 20 | | 3 | Lucy | 22 |

CREATE TABLE table1 (
   id INT(11) NOT NULL AUTO_INCREMENT,
   name VARCHAR(50),
   age INT(11),
   PRIMARY KEY (id)
);

INSERT INTO table1 (name, age) VALUES ('Tom', 18);
INSERT INTO table1 (name, age) VALUES ('Jack', 20);
INSERT INTO table1 (name, age) VALUES ('Lucy', 22);

table2

| id | name | age | | -- | ---- | --- | | 4 | Mary | 19 | | 5 | John | 21 | | 6 | Lily | 23 |

CREATE TABLE table2 (
   id INT(11) NOT NULL AUTO_INCREMENT,
   name VARCHAR(50),
   age INT(11),
   PRIMARY KEY (id)
);

INSERT INTO table2 (name, age) VALUES ('Mary', 19);
INSERT INTO table2 (name, age) VALUES ('John', 21);
INSERT INTO table2 (name, age) VALUES ('Lily', 23);
使用UNION操作符追加两个表

通过使用UNION操作符,我们可以将两个表追加成一个结果集,并去除重复行。

SELECT * FROM table1
UNION
SELECT * FROM table2;

结果如下:

| id | name | age | | -- | ---- | --- | | 1 | Tom | 18 | | 2 | Jack | 20 | | 3 | Lucy | 22 | | 4 | Mary | 19 | | 5 | John | 21 | | 6 | Lily | 23 |

使用UNION ALL操作符追加两个表

如果需要保留所有行,包括重复行,可以使用UNION ALL操作符。

SELECT * FROM table1
UNION ALL
SELECT * FROM table2;

结果如下:

| id | name | age | | -- | ---- | --- | | 1 | Tom | 18 | | 2 | Jack | 20 | | 3 | Lucy | 22 | | 4 | Mary | 19 | | 5 | John | 21 | | 6 | Lily | 23 |

将结果插入一个新表中

如果需要将结果插入一个新表中,可以使用CREATE TABLE语句创建一个新表,然后使用INSERT INTO语句将结果插入新表中。

CREATE TABLE table3 (
   id INT(11) NOT NULL AUTO_INCREMENT,
   name VARCHAR(50),
   age INT(11),
   PRIMARY KEY (id)
);

INSERT INTO table3
SELECT * FROM table1
UNION
SELECT * FROM table2;
总结

本文介绍了如何使用UNION和UNION ALL操作符将两个表追加成一个结果集,并将结果插入到一个新表中。在实际应用中,可以根据具体的需求选择合适的操作符。