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

mysql实现合并结果集并去除重复值

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

mysql实现合并结果集并去除重复值

mysql 合并结果集并去除重复值

SELECT DISTINCT c.parent_id from (  SELECT parent_id FROM tp_goods_category a join tp_goods g on a.id = g.cat_id GROUP BY parent_id UNION ALL SELECT cat_id FROM tp_goods GROUP BY cat_id ) c;

先去除每个结果集中的重复值 以 group by 方式除去

SELECT parent_id FROM tp_goods_category a join tp_goods g on a.id = g.cat_id GROUP BY parent_id

SELECT cat_id FROM tp_goods GROUP BY cat_id

mysql实现合并结果集并去除重复值

然后合并两个结果集 生成一个新的结果集 (或者可以成为新表)  在 使用DISTINCT  去除合并结果集中的重复值  注意  必须给  新结果集取一个别名  比如例子中的  c

mysql实现合并结果集并去除重复值

新的查询结果

mysql实现合并结果集并去除重复值

此语句为了删除分类表中   在goods表中不存在的  分类id  且 级别为第二级别  

mysql实现合并结果集并去除重复值

mysql 合并结果集(union,union all)

我需要在一个sql的执行结果中,显示两个或两个以上的where条件的结果(select 列的结构相同)。

考虑使用union,或union all 。

union 与 union all 执行结果不同

UNION 删除重复的记录再返回结果,即对整个结果集合使用了DISTINCT。结果中无重复数据。

UNION ALL 将各个结果合并后就返回,不删除重复记录。如果结果中有重复数据,则包含重复数据。

例如,

mysql> SELECT * FROM world.city where ID=2020 UNION SELECT * FROM world.city where ID=2020;
+------+-------+-------------+--------------+------------+
| ID  | Name | CountryCode | District   | Population |
+------+-------+-------------+--------------+------------+
| 2020 | Tieli | CHN     | Heilongjiang |   265683 |
+------+-------+-------------+--------------+------------+
1 row in set (0.00 sec)

mysql> SELECT * FROM world.city where ID=2020 UNION ALL SELECT * FROM world.city where ID=2020;
+------+-------+-------------+--------------+------------+
| ID  | Name | CountryCode | District   | Population |
+------+-------+-------------+--------------+------------+
| 2020 | Tieli | CHN     | Heilongjiang |   265683 |
| 2020 | Tieli | CHN     | Heilongjiang |   265683 |
+------+-------+-------------+--------------+------------+
2 rows in set (0.00 sec)

对UNION,UNION ALL的结果继续处理,需要加括号

比如要对合并后的结果集进行ORDER BY,LIMIT等操作需要对合并对象单个的SELECT语句加上括号。

并且把整体结果的条件ORDER BY,LIMIT等放到最后一个SELECT的括号后面。

例如,

(SELECT * FROM world.city
WHERE CountryCode = 'JPN' AND Name LIKE 'nishi%')
UNION ALL
(SELECT * FROM world.city
WHERE CountryCode = 'CHN' AND Population >= 5000000)
LIMIT 5;

mysql中,UNION,UNION ALL的性能/效率不同

从效率上说,UNION ALL 要比UNION快很多。

所以,如果可以确认合并的结果集中不包含重复的数据的话,或者需要的结果中即使包含重复也无所谓,那么就使用UNION ALL。

UNION

  • UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算。
  • UNION在运行时先取出各个表/各个select的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。

UNION ALL

  • UNION ALL只是简单的将结果合并后就返回。不涉及排序运算。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

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

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

mysql实现合并结果集并去除重复值

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

下载Word文档

猜你喜欢

mysql实现合并结果集并去除重复值

目录mys编程ql 合并结果集并去除重复值mysql 合并结果集(union,union all)union 与 union all 执行结果不同对UNION,UNION ALL的结果继续处理,需要加括号mysql中,UNION,UNION
2022-12-21

mysql如何实现合并结果集并去除重复值

本篇内容介绍了“mysql如何实现合并结果集并去除重复值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mysql 合并结果集并去除重复值SE
2023-07-04

Python合并字典键值并去除重复元素的实例

假设在python中有一字典如下: x={‘a':'1,2,3', ‘b':'2,3,4'} 需要合并为: x={‘c':'1,2,3,4'} 需要做到三件事: 1. 将字符串转化为数值列表 2. 合并两个列表并添加新的键值 3. 去
2022-06-04

sql多个结果集合并到一行怎么实现

在SQL中,可以使用UNION ALL操作符将多个结果集合并成一个结果集。例如:SELECT column1 FROM table1UNION ALLSELECT column2 FROM table2这将会把table1中的colu
sql多个结果集合并到一行怎么实现
2024-04-09

MySQL 如何查找并删除重复记录的实现

大家好,我是只谈技术不剪发的 Tony 老师。由于一些历史原因或者误操作,可能会导致数据表中存在重复的记录;今天我们就来谈谈如何查找 MySQL 表中的重复数据以及如何删除这些重复的记录。 创建示例表 首先创建一个示例表 people 并生
2022-05-11

mysql删除重复记录并且只保留一条的实现方法

准备的测试表结构及数据插入的数据中A,B,E存在重复数据,C没有重复记录CREATE TABLE `tab` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAUL
2023-01-04

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

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

如何下载 Apache + PHP + Mysql 集成安装环境并结合内网穿透工具实现公网访问内网服务

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. WampServer下载安装二. Wam
如何下载 Apache + PHP + Mysql 集成安装环境并结合内网穿透工具实现公网访问内网服务
2023-12-23

编程热搜

目录