MySQL UNION 学习笔记

什么是 UNION?

UNION 是 MySQL 中常用的一个操作符,它可以将两个或者多个 SELECT 语句的结果集合并到一起。具体来说,UNION 可以去掉重复的行,并且会按照第一个查询语句中列的顺序返回结果。如果想按照特定列排序,则需要在 UNION 语句后面添加 ORDER BY 子句。

UNION 的语法

sqlCopy Code
SELECT [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,其中包含了所有用户的信息,包括 idnameage 等信息。现在,我们想查询所有用户的姓名和年龄,并将结果合并到一起:

sqlCopy Code
SELECT name, age FROM user_info UNION ALL SELECT name, age FROM backup_user_info;

在上述语句中,我们使用了 UNION ALL 关键字,表示不去重查询结果。结果将按照 user_infobackup_user_info 中数据出现的顺序返回。如果希望按照特定列排序,可以在语句后面添加 ORDER BY 子句。

实例二:去重的 UNION 查询

如果我们想查询用户表 user_info 中所有的城市,并且去重,可以使用下面的 SQL 语句:

sqlCopy Code
SELECT city FROM user_info UNION SELECT city FROM backup_user_info;

在上述 SQL 语句中,我们没有使用 ALL 关键字,表示需要去重。返回的结果集合中不会包含重复的行。