mysql union 的用法

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: union 的用法 (一般用于多张表的union)

合并查询结果



将两次或者两次以上的结果合并在一起



要求: 两次查询的列数一致


推荐,查询每一列,相对应的列类型是一样的


多次sql语句 取出 的列名可以不一致,此时以取第一个sql 的列名为准。




如果不同的语句中取出的行  有每个列的值都相同,那么相同的行将被合并成一行(去重复)


如果不想去重复union加上 all





创建表格


create table ta


(id char(1) default null,


num int not null default 0


) engine=InnoDB  charset=utf8;



insert into ta


(id,num)


values


('a',10),


('b',20),


('c',30),


('d',40);

create table tb


(id char(1) default null,


num int not null default 0


) engine=InnoDB  charset=utf8;





insert into tb


(id,num)


values


('a',50),


('b',60),


('c',70),


('d',80);

1  合并 两张表格

2  合并两张表单把相同id下的数值sum求和 

发现问题

 使用聚合函数时 不许有空格

Sum(num)

Sum (num)

将会把  sum  识别为 表 报该数据库下不存在该表单错误


Error 1630(42000)





注意:如果子句里 有 order by | limit 需要 union 两边加小括号


例如


(select  good_id,cat_id,goods_name,shop_price from goods _id =where cat_id = 4 order by



shop_price desc )union (select  good_id,cat_id,goods_name,shop_price from goods _id =where



cat_id = 5 order by shop_price desc);







但是 容易有误


解决方案


1  order by 尽量放在最后使用  即岁最终合并后的结果 进行排序


(select  good_id,cat_id,goods_name,shop_price from goods _id =where cat_id = 4 )union



(select  good_id,cat_id,goods_name,shop_price from goods _id =where cat_id = 5  order by



shop_price desc;

2  每个子语句 加上limit

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
SQL 关系型数据库 MySQL
总结vue3 的一些知识点:MySQL UNION 操作符
总结vue3 的一些知识点:MySQL UNION 操作符
|
28天前
|
SQL 关系型数据库 MySQL
mysql结果垂直显示-\g和\G的用法
mysql结果垂直显示-\g和\G的用法
26 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL 中exists与in及any的用法详解
MySQL 中exists与in及any的用法详解
59 3
|
1月前
|
存储 安全 关系型数据库
MySQL 临时表的用法和特性
MySQL 临时表的用法和特性
|
6月前
|
关系型数据库 MySQL Unix
【MySQL用法】MySQL 中 datetime 和 timestamp 的区别与选择
【MySQL用法】MySQL 中 datetime 和 timestamp 的区别与选择
123 0
|
2月前
|
SQL 关系型数据库 MySQL
Mysql SQL的一些特殊用法记录
1、查询group by having 中having不起作用,及解决
15 0
|
3月前
|
关系型数据库 MySQL 数据库
MySQL UNION 操作符
【1月更文挑战第6天】MySQL 使用讲解 第06期
|
4月前
|
SQL 关系型数据库 MySQL
MySQL UNION 操作符
MySQL UNION 操作符
|
4月前
|
SQL 关系型数据库 MySQL
MySQL知识汇总:MySQL函数CASE WHEN用法详解
MySQL知识汇总:MySQL函数CASE WHEN用法详解
|
4月前
|
关系型数据库 MySQL Linux
MySQL - \g 和 \G用法与区别
MySQL - \g 和 \G用法与区别
41 1