Mysql union 联合查询

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: Mysql union 联合查询

  • 联合查询含义:指将2个或2个以上的字段数量相同的查询结果,“纵向堆叠”后合并为一个结果。


1、所有单个查询结果应该具有相等的列数。 2、所有单个查询的列类型应该具有一致性(即每个查询的第n列的数据类型一致)。 3、单个查询的列名可以不同,但最终的列名是第一个查询的列名(可以使用别名)。 4、union 可以带 all 或 distinct 参数,如果省略默认就是 distinct, 即默认已经消除重复行了。 5、最后的 order by 或 limit 是对整个联合之后的结果数据进行排序或数量限定。 6、order by 子句中的排序字段应该使用第-个查询中的字段名,如果有别名就必须使用别名。


  • 语法形式: 通过 union 进行联合


select * from test union (all 或 distinct(默认)) select * from user union (all 或 distinct(默认)) select ...... order by 字段 (asc || desc) limit 页码,每页条数;


  • 测试数据:


``` mysql> select * from test; +----+--------+------+------+ | id | name | sex | age | +----+--------+------+------+ | 1 | name1 | 女 | 15 | | 2 | name1 | 女 | 15 | | 3 | name53 | 男 | 10 | +----+--------+------+------+


mysql> select * from user; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | name1 | 15 | | 2 | name1 | 15 | | 3 | name53 | 10 | +----+--------+------+ ```


``` * 这里报错,是因为查询的是两个表的全部数据,两个表的列数量不相等 mysql> select * from test union select * from user; ERROR 1222 (21000): The used SELECT statements have a different number of columns


  • 查询对等数量字段 mysql> select id, name, age from test union select id, name, age from user; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | name1 | 15 | | 2 | name1 | 15 | | 3 | name53 | 10 | +----+--------+------+


  • 测试 union all mysql> select * from user union all select * from user; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | name1 | 15 | | 2 | name1 | 15 | | 3 | name53 | 10 | | 1 | name1 | 15 | | 2 | name1 | 15 | | 3 | name53 | 10 | +----+--------+------+


  • 测试 union distinct,默认就是它所以可以不用写 mysql> select * from user union select * from user; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | name1 | 15 | | 2 | name1 | 15 | | 3 | name53 | 10 | +----+--------+------+ ```

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
NoSQL 安全 关系型数据库
2024Mysql And Redis基础与进阶操作系列(6)作者——LJS[含MySQL 多表之一对一/多;多对多;多表联合查询等详解步骤及常见报错问题所对应的解决方法]
MySQL 多表之一对一/多;多对多;多表联合之交叉连接;内连接;左、右、外、满、连接;子查询及关键字;自连接查询等详解步骤及常见报错问题所对应的解决方法
|
数据采集 SQL 关系型数据库
在 MySQL 中使用 Union
【8月更文挑战第11天】
1316 0
在 MySQL 中使用 Union
|
Oracle 关系型数据库 MySQL
MYSQL-多表联合查询汇总
MYSQL-多表联合查询汇总
|
SQL 关系型数据库 MySQL
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
MySQL数据库——多表查询(3)-自连接、联合查询、子查询
1617 1
|
关系型数据库 MySQL
MySQL 的 union 和union all 的区别
【5月更文挑战第4天】MySQL 的 union 和union all 的区别
1077 7
|
关系型数据库 MySQL 数据库
MySQL:union all与union区别详解
MySQL:union all与union区别详解
439 0
|
关系型数据库 MySQL 数据库
Mysql数据库联合查询
Mysql数据库联合查询
278 0
|
SQL 关系型数据库 MySQL
MySQL多表联合查询+分组+排序
MySQL多表联合查询+分组+排序
167 0
|
SQL 关系型数据库 MySQL
MySQL第三战:CRUD,函数1以及union&union all
MySQL第三战:CRUD,函数1以及union&union all
255 0
|
关系型数据库 MySQL
MySQL union和union all的用法详解和区别
MySQL union和union all的用法详解和区别
2168 0

推荐镜像

更多