关键词

MySQL Union合并查询数据及表别名、字段别名用法分析

MySQL Union合并查询数据及表别名、字段别名用法分析

简介

MySQL的UNION语句可以将多条SELECT语句的结果集合并在一起,UNION语句必须满足以下要求:

  1. 多条SELECT语句返回的列数必须相同;
  2. 多条SELECT语句返回的列的数据类型必须兼容;
  3. UNION语句返回的结果集中,列的名称以第一条SELECT语句为准。

语法

SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;

示例1

考虑以下两张表:

表1:employees

id name age gender department
1 Jon 25 Male IT
2 Jane 30 Female Marketing
3 Bob 35 Male IT

表2:salaries

id salary
1 10000
2 12000
3 8000

现在我们想要查询员工表中的姓名、性别、部门以及薪水表中的工资,SQL语句如下:

SELECT name, gender, department, salary FROM employees JOIN salaries ON employees.id = salaries.id;

但是这样查询会返回错误,因为表employees和表salaries中的数据类型不一致,需要使用UNION语句进行合并查询:

SELECT name, gender, department, 0 AS salary FROM employees WHERE 1=1
UNION
SELECT NULL, NULL, NULL, salary FROM salaries WHERE 1=1;

上述SQL语句使用了表别名和列别名,查询结果如下:

name gender department salary
Jon Male IT 0
Jane Female Marketing 0
Bob Male IT 0
NULL NULL NULL 10000
NULL NULL NULL 12000
NULL NULL NULL 8000

示例2

考虑以下一张表:

表3:orders

id name amount date
1 Jon 100 2019-01-01
2 Jane 200 2019-01-02
3 Bob 300 2019-01-03

现在我们想要查询出所有订单中的购买人和购买日期。

SELECT name, date FROM orders;

查询结果如下:

name date
Jon 2019-01-01
Jane 2019-01-02
Bob 2019-01-03

结论

上述示例说明了MySQL Union合并查询数据及表别名、字段别名用法分析的过程,使用UNION语句能够将多条SELECT语句的结果集合并在一起,但必须满足特定的要求。此外,使用表别名和列别名能够使查询结果更加易读易理解。

本文链接:http://task.lmcjl.com/news/18829.html

展开阅读全文