首页数据库MySQL如何合并查询结果(mysql如何合并查询结果数据)

MySQL如何合并查询结果(mysql如何合并查询结果数据)

时间2023-04-04 10:54:02发布访客分类数据库浏览1167
导读:今天小编给大家分享一下MySQL如何合并查询结果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。利用 UNION 关键字,可以...
今天小编给大家分享一下MySQL如何合并查询结果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

利用 UNION 关键字,可以给出多条 SELECT 语句,并将它们的结果组合成单个结果集。合并 时,两个表对应的列数和数据类型必须相同。各个 SELECT 语句之间使用 UNION 或 UNION ALL 关键字分隔。UNION 不使用关键字 ALL,执行的时候删除重复的记录,所有返回的行都是唯一的; 使用关键字 ALL 的作用是不删除重复行也不对结果进行自动排序。基本语法格式如下:

SELECTcolumn,...FROMtable1
UNION[ALL]
SELECTcolumn,...FROMtable2

查询所有价格小于 9 的水果的信息,查询 s_id 等于 101 和 103 所有的水果的信息, 使用 UNION 连接查询结果,SQL 语句如下:

SELECTs_id,f_name,f_price
FROMfruits
WHEREf_price9.0
UNIONSELECTs_id,f_name,f_price
FROMfruits
WHEREs_idIN(101,103);
    

合并查询结果如下:

如前所述,UNION 将多个 SELECT 语句的结果组合成一个结果集合。可以分开查看每个 SELECT 语句的结果:

SELECTs_id,f_name,f_priceFROMfruitsWHEREf_price9.0;
    

SELECTs_id,f_name,f_priceFROMfruitsWHEREs_idIN(101,103);
    

由分开查询的结果可以看到,第 1 条 SELECT 语句查询价格小于 9 的水果,第 2 条 SELECT 语句查询供应商 101 和 103 提供的水果。使用 UNION 将两条 SELECT 语句分隔开,执行完毕之后 把输出结果组合成单个的结果集,并删除重复的记录。

使用 UNION ALL 包含重复的行,在前面的例子中,分开查询时,两个返回结果中有相同的 记录。UNION 从查询结果集中自动去除了重复的行,如果要返回所有匹配行,而不进行删除,可 以使用 UNION ALL。

查询所有价格小于 9 的水果的信息,查询 s_id 等于 101 和 103 的所有水果的信息, 使用 UNION ALL 连接查询结果,SQL 语句如下:

SELECTs_id,f_name,f_price
FROMfruits
WHEREf_price9.0
UNIONALL
SELECTs_id,f_name,f_price
FROMfruits
WHEREs_idIN(101,103);
    

查询结果如下:

由结果可以看到,这里总的记录数等于两条 SELECT 语句返回的记录数之和,连接查询结果 并没有去除重复的行。

提 示 :UNION 和 UNION ALL 的区别:使用 UNION ALL 的功能是不删除重复行,加上 ALL 关 键字语句执行时所需要的资源少,所以尽可能地使用它,因此知道有重复行但是想保留 这些行,确定查询结果中不会有重复数据或者不需要去掉重复数据的时候,应当使用 UNION ALL 以提高查询效率。

以上就是“MySQL如何合并查询结果”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

mysql

若转载请注明出处: MySQL如何合并查询结果(mysql如何合并查询结果数据)
本文地址: https://pptw.com/jishu/980.html
linux的信号有哪些(linux常见信号) linux平台有哪些好处(linux系统平台)

游客 回复需填写必要信息