Mysql数据库基础第二章:(十)联合查询

Mysql数据库基础系列

软件下载地址
提取码:7v7u
数据下载地址
提取码:e6p9
mysql数据库基础第一章:(一)数据库基本概念
mysql数据库基础第一章:(二)mysql环境搭建
mysql数据库基础第二章:(一)基础查询
mysql数据库基础第二章:(二)条件查询
mysql数据库基础第二章:(三)排序查询
mysql数据库基础第二章:(四)常见函数
mysql数据库基础第二章:(五)分组查询
mysql数据库基础第二章:(六)连接查询
mysql数据库基础第二章:(七)子查询
mysql数据库基础第二章:(八)子查询经典案例
mysql数据库基础第二章:(九)分页查询
mysql数据库基础第二章:(十)联合查询
mysql数据库基础第三章:DML语言
mysql数据库基础第四章:DDL(数据定义语言):库表的管理、数据类型与约束条件
mysql数据库基础第五章:(一)事务
mysql数据库基础第五章:(二)视图
mysql数据库基础第六章:变量、存储过程与函数
mysql数据库基础第七章:流程控制结构
mysql数据库基础第八章:窗口函数和公用表达式(CTE)



1、联合查询基本概述

union 联合查询:其效果将多条查询语句的结果合并成一个结果
基本语法如下:

查询语句1
union
查询语句2
union
查询语句3...

当我们要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时,这时需要使用连接查询。

2、注意事项:

1、要求多条查询语句的查询列数是一致的
2、要求多条查询语句的查询的每一列的类型和顺序一致
3、union查询默认去重,如果想要包含重复项使用union all

3、具体案例

1.查询部门编号>90或邮箱包含a的员工信息
此时要查询的信息来自同一个表,我们可以使用之前的方式进行查询,也可以使用联合查询,具体如下:

# 方式一:
SELECT * FROM employees WHERE email LIKE '%a%' OR department_id>90;;
# 方式二:连接查询
SELECT * FROM employees  WHERE email LIKE '%a%'
UNION
SELECT * FROM employees  WHERE department_id>90;

#2.查询中国用户中男性的信息以及外国用户中年男性的用户信息
此时要查询的信息来源于两个不同的表,因此需要使用联合查询

SELECT id,cname FROM t_ca WHERE csex='男'
UNION ALL
SELECT t_id,tname FROM t_ua WHERE tGender='male';
posted @ 2022-08-27 11:09  JOJO数据科学  阅读(33)  评论(0编辑  收藏  举报