我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL两个查询如何合并成一个结果详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL两个查询如何合并成一个结果详解

MySQL 查询合并

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。

注意:两个列表中的字段要一样才可以合并(顺序也要一样)

满足条件:

1、两个select查询的列的数量必须相同;

2、每个列的数据类型需要相似;

1.先写两条select

第一条select:

SELECT
	DATE_FORMAT(add_time, '%Y-%m-%d') as 'add_time',
	COUNT(add_time) as 'reach_intention'
FROM
	table1
where
## where 条件可以根据自己实际情况来定
	DATE_FORMAT(add_time, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 1 month), '%Y-%m-%d')
group by
	DATE_FORMAT(add_time, '%Y-%m-%d')

这是查询出来的结果

结果一

第二条select:

select
	DATE_FORMAT(add_date, '%Y-%m-%d') as 'add_time' ,
	COUNT(add_date)  as 'post_release'
from
	table2
where
## where 条件可以根据自己实际情况来定
	DATE_FORMAT(add_date, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 1 month), '%Y-%m-%d')
group by
	DATE_FORMAT(add_date, '%Y-%m-%d')

第二条select查询出来的结果

MySQL两个查询如何合并成一个结果详解

2.合并查询结果

先把两条select用union all连接起来

SELECT
		DATE_FORMAT(add_time, '%Y-%m-%d') as 'add_time', COUNT(add_time) as 'reach_intention' ,  '' as 'post_release'
	FROM
		table1
	where
		DATE_FORMAT(add_time, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 30 day), '%Y-%m-%d')
	group by
		DATE_FORMAT(add_time, '%Y-%m-%d')
UNION ALL
	select
		DATE_FORMAT(add_date, '%Y-%m-%d') as 'add_time' , '' as 'reach_intention' ,  COUNT(add_date) as 'post_release'
	from
		table2
	where
		DATE_FORMAT(add_date, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 30 day), '%Y-%m-%d')
	group by
		DATE_FORMAT(add_date, '%Y-%m-%d') 

在外层嵌套一个select

## 括号里面放 用 union all 连接的select 
select * from () test
## 这里要给表起个别名 不然会报 Every derived table must have its own alias 每个派生表都必须有自己的别名

把union all 连接的select 放到括号里面去然后运行

select
	*
from
(
	SELECT
		DATE_FORMAT(add_time, '%Y-%m-%d') as 'add_time', COUNT(add_time) as 'reach_intention' ,  '' as 'post_release'
	FROM
		table1
	where
		DATE_FORMAT(add_time, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 30 day), '%Y-%m-%d')
	group by
		DATE_FORMAT(add_time, '%Y-%m-%d')
UNION ALL
	select
		DATE_FORMAT(add_date, '%Y-%m-%d') as 'add_time' , '' as 'reach_intention' ,  COUNT(add_date) as 'post_release'
	from
		table2
	where
		DATE_FORMAT(add_date, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 30 day), '%Y-%m-%d')
	group by
		DATE_FORMAT(add_date, '%Y-%m-%d') 
) test

运行结果

MySQL两个查询如何合并成一个结果详解

把结果按日期分组排序。

使用 group by 和 order by 关键字

select
	add_time,
	sum(reach_intention) as 'reach_intention' ,
	sum(post_release) as 'post_release'
from
	(
	SELECT
		DATE_FORMAT(add_time, '%Y-%m-%d') as 'add_time', COUNT(add_time) as 'reach_intention' , '' as 'post_release'
	FROM
		table1
	where
		DATE_FORMAT(add_time, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 30 day), '%Y-%m-%d')
	group by
		DATE_FORMAT(add_time, '%Y-%m-%d')
UNION ALL
	select
		DATE_FORMAT(add_date, '%Y-%m-%d') as 'add_time' , '' as 'reach_intention' , COUNT(add_date) as 'post_release'
	from
		table2
	where
		DATE_FORMAT(add_date, '%Y-%m-%d') > DATE_FORMAT(date_sub(now(), interval 30 day), '%Y-%m-%d')
	group by
		DATE_FORMAT(add_date, '%Y-%m-%d') ) test
group by
	test.add_time
order by
	test.add_time desc

结果如下

MySQL两个查询如何合并成一个结果详解

总结

到此这篇关于MySQL两个查询如何合并成一个结果的文章就介绍到这了,更多相关MySQL两个查询合并一个内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL两个查询如何合并成一个结果详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql两个查询结果怎么合并

要合并两个查询结果,可以使用UNION操作符。UNION操作符将两个查询结果合并为一个结果集,并去除重复的行。例如,假设有两个查询:SELECT column1 FROM table1SELECT column2 FROM table2
sql两个查询结果怎么合并
2024-04-09

sql如何把两个查询结果合在一起

在SQL中,可以使用UNION操作符将两个查询结果合并在一起。例如:SELECT column1, column2FROM table1WHERE condition1UNIONSELECT column1, column2FR
sql如何把两个查询结果合在一起
2024-04-09

MySQL如何合并查询结果

今天小编给大家分享一下MySQL如何合并查询结果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。利用 UNION 关键字,可以
2023-04-06

wps如何把两个ppt合并成一个

这篇文章主要介绍了wps如何把两个ppt合并成一个,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法:首先打开软件,新建两个ppt演示文档;然后在第一个ppt文档中,按住sh
2023-06-14

oracle如何对比两个查询结果

在Oracle中,可以使用以下方法对比两个查询结果:1. 使用MINUS运算符:该运算符用于返回在第一个查询结果中出现,但不在第二个查询结果中出现的所有行。例如:SELECT * FROM 表1MINUSSELECT * FROM 表2;这
2023-08-09

sql中如何把两个表合并成一个表

在SQL中,可以使用UNION操作符将两个表合并成一个表。UNION操作符用于将两个或多个SELECT语句的结果集合并成一个结果集,并去除重复行。以下是一个示例:SELECT column1, column2FROM table1UN
sql中如何把两个表合并成一个表
2024-05-06

如何使用MySQL联合合并两个表来创建一个新表?

以下是使用 MySQL union 合并两个表的语法create table yourTableName(select *from yourTableName1)UNION(select *from yourTableName2)
2023-10-22

mysql 给查询结果新增一个字段,并设定默认值

SELECT "第一中学" as school, class, name, geography FROM test_table WHERE test = 1;  插入新table:REPLACE INTO test_school(school, class,
mysql 给查询结果新增一个字段,并设定默认值
2016-07-17

Node.js中如何合并两个复杂对象详解

前言 相信大家都知道在通常情况下,在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来应对呢?下面来一起学习学习吧。 Node.js合并两个复杂对
2022-06-04

mysql一次将多条不同sql查询结果并封装到一个结果集的实现方法

目录前言问题处理过程1.使用union all进行并列查询2.求和处理总结前言最近遇到一个统计查询需求,要求一次性查询多个统计信息,其中两个查询信息不在一个表中,也没有业务关联,表中也没有做连接处理。不考虑产品设计是否合理,完全是实际需求
2023-03-10

Python实现SqlServer查询结果并写入多个Sheet页的方法详解

这篇文章主要为大家整理了两个Python实现SqlServer查询结果并写入多个Sheet页的方法,文中的示例代码讲解详细,感兴趣的可以了解一下
2022-12-08

如何添加一个mysql用户并给予权限详解

目录一、新建一个用户1、创建用户命令:二、为用户授权1、给用户授权命令 2、给 hh 用户授可查、改的权限。3、在给 hh用户增加一个查看视图的权限,并刷新三、撤销用户权限1、撤销用户权限命令2、撤销 joytom 用户的查看视图的权限四、
2023-03-01

编程热搜

目录