MySQL UNION 学习笔记
什么是 UNION?
UNION 是 MySQL 中常用的一个操作符,它可以将两个或者多个 SELECT 语句的结果集合并到一起。具体来说,UNION 可以去掉重复的行,并且会按照第一个查询语句中列的顺序返回结果。如果想按照特定列排序,则需要在 UNION 语句后面添加 ORDER BY 子句。
UNION 的语法
sqlCopy CodeSELECT [column1, column2, ...] FROM table1
UNION [DISTINCT or ALL]
SELECT [column1, column2, ...] FROM table2
[ORDER BY];
- SELECT:需要指定要查询的列,可以通过 * 查询所有列。
- FROM:指定查询的表名。
- UNION:指定联合查询的关键字,通过 DISTINCT 或者 ALL 指定是否需要去重。
- ORDER BY:用于指定查询结果的排序方式。
UNION 的实例
实例一:不去重的 UNION 查询
假设我们有一个表 user_info
,其中包含了所有用户的信息,包括 id
、name
和 age
等信息。现在,我们想查询所有用户的姓名和年龄,并将结果合并到一起:
sqlCopy CodeSELECT name, age FROM user_info
UNION ALL
SELECT name, age FROM backup_user_info;
在上述语句中,我们使用了 UNION ALL 关键字,表示不去重查询结果。结果将按照 user_info
和 backup_user_info
中数据出现的顺序返回。如果希望按照特定列排序,可以在语句后面添加 ORDER BY 子句。
实例二:去重的 UNION 查询
如果我们想查询用户表 user_info
中所有的城市,并且去重,可以使用下面的 SQL 语句:
sqlCopy CodeSELECT city FROM user_info
UNION
SELECT city FROM backup_user_info;
在上述 SQL 语句中,我们没有使用 ALL 关键字,表示需要去重。返回的结果集合中不会包含重复的行。