MySQL UNION用于合并两个或多个SELECT语句的结果集,返回一个包含所有结果集记录的新表。
下面是使用MySQL UNION进行操作的语法:
SELECT column1, column2, ... FROM table1
UNION [ALL | DISTINCT]
SELECT column1, column2, ... FROM table2;
其中,column1、column2等表示要查询的列名,table1和table2则表示要从哪些表中查询数据。[ALL | DISTINCT]指定是否去重,ALL表示不去重,DISTINCT表示去重。如果不指定,则默认为DISTINCT。
示例:
假设我们有两张表t1和t2,它们的结构如下:
表t1:
id | name | age |
---|---|---|
1 | Tom | 20 |
2 | John | 25 |
3 | Mary | 30 |
表t2:
id | name | age |
---|---|---|
4 | Alice | 18 |
5 | Peter | 22 |
6 | Robert | 28 |
那么,我们可以通过以下语句来将这两张表的数据合并成一张表:
SELECT * FROM t1
UNION
SELECT * FROM t2;
执行以上语句后,得到的结果如下:
id | name | age |
---|---|---|
1 | Tom | 20 |
2 | John | 25 |
3 | Mary | 30 |
4 | Alice | 18 |
5 | Peter | 22 |
6 | Robert | 28 |
注意:UNION操作返回的结果集中的列名是按照第一个SELECT语句中的列名来确定的。如果两个SELECT语句中的列名不同,那么需要在第二个SELECT语句中使用别名来指定新的列名。