知识

UNION(并)

使用 UNION可以实现将多个查询结果集合并为一个结果集。
图片说明
所有查询语句中列的个数和列的顺序必须相同。
所有查询语句中对应列的数据类型必须兼容。
ORDER BY语句要放在最后一个查询语句的后边。

例46.查询系号是1和2的班级的班号、班名、系号,系号是1 的记录在前,2在后。

SELECT 班号, 班名, 系号
FROM 班级表 WHERE 系号= 1
UNION
SELECT 班号, 班名, 系号
FROM 班级表 WHERE 系号= 2

等价于:

SELECT 班号, 班名, 系号
FROM 班级表 WHERE 系号 IN (1,2) ORDER BY 系号

例47.查询要求同例46,但将查询结果按系号从大到小排序。

SELECT 班号, 班名, 系号
FROM 班级表 WHERE 系号= 1
UNION
SELECT 班号, 班名, 系号
FROM 班级表 WHERE 系号= 2
ORDER BY 系号 DESC

题解

题目:现在运营想要分别查看学校为山东大学或者性别为男性的用户的device_id、gender、age和gpa数据,请取出相应结果,结果不去重

SELECT device_id,gender,age,gpa FROM user_profile
WHERE university='山东大学' 
UNION ALL
SELECT device_id,gender,age,gpa FROM user_profile
WHERE gender='male'

示例:user_profile

根据示例,你的查询应返回以下结果: