数据库:使用自关联实现查询单表或多表中的重复数据(通用)

单表仅查询重复数据

1.首先建一张表

-- 建表tttttt
DROP TABLE IF EXISTS `tttttt`;
CREATE TABLE `tttttt`  (
  `t` int(10) NULL DEFAULT NULL,
  `y` int(10) NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci

-- 插入测试数据
INSERT INTO `tttttt` VALUES (1, 1);
INSERT INTO `tttttt` VALUES (1, 1);
INSERT INTO `tttttt` VALUES (2, 2);
INSERT INTO `tttttt` VALUES (2, 3);
INSERT INTO `tttttt` VALUES (3, 3);
INSERT INTO `tttttt` VALUES (8, 8);
INSERT INTO `tttttt` VALUES (8, 8);

可以得到下列表数据。很明显,有四行数据是完全重复的
在这里插入图片描述
2.仅查询重复数据。

思路:这时候我们可以使用自关联查询。将tttttt表虚拟化(起别名)出第二张表,然后与表tttttt本身比较。然后使用count函数计数,当符合两张表的两列数据完全相等时加1。最后通过count()>1来过滤掉那些不重复的数据。

SELECT a.* FROM tttttt a WHERE ( SELECT COUNT(*) FROM tttttt WHERE tttttt.t= a.t AND tttttt.y = a.y) > 1;

在这里插入图片描述

多表仅查询重复数据

1.创建yyyyyy表

-- 创建yyyyyy表
DROP TABLE IF EXISTS `yyyyyy`;
CREATE TABLE `yyyyyy`  (
  `q` int(10) NULL DEFAULT NULL,
  `w` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci

-- 插入测试数据
INSERT INTO `yyyyyy` VALUES (1, '1');
INSERT INTO `yyyyyy` VALUES (8, '1');
INSERT INTO `yyyyyy` VALUES (3, '1');

插入数据后,可以得到下列数据。
在这里插入图片描述
然后用tttttt使用inner join关联yyyyyy表。得到下列数据。
在这里插入图片描述
思路:即使是多表查询,最后查出来的结果我们可以作为中间表使用。中间表自关联,需要查询的字段对比,还是使用count(*)来计数,最后过滤掉那些不大于1的数据行。

SELECT zb.* FROM 
 (SELECT a.*,b.* FROM tttttt a INNER JOIN yyyyyy b ON a.t = b.q) zb 
   WHERE 
    (SELECT COUNT(*) FROM (SELECT a.*,b.* FROM tttttt a INNER JOIN yyyyyy b ON a.t = b.q) zb1 
	  WHERE zb.t = zb1.t AND zb.y = zb1.y AND zb.q = zb1.q AND zb.w = zb1.w) > 1;

执行结果如下:
在这里插入图片描述

自关联妙用

Mysql:查询每科成绩前二的学生信息和课程信息(即使存在多个第一,也可以有效查询).

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于数据库管理的数据采集系统的设计及实现 基于数据库管理的数据采集系统的设计及实现全文共3页,当前为第1页。 摘要:因传统测控系统操作界面任务单一化程度较为突出,软硬件各项资源实际利用率处于低下状态。为进一步提升资料重复的利用率,缩减开发成本,便于测试系统优化配置,本文主要描述了以数据库的管理为基础下数据采集的系统设计与实现,主要包含着配置采集任务、各种传感器的名称及型号、运算公式及各项参数等各项数据信息采集、存储及输出打印等,实践应用证明了该系统在配置方面极具灵活度及便捷性,有着较高测量的精准度,可实现自动化存储所有实测的数据信息,系统运行可靠稳定、操作便捷,能够满足于各种测试环境现实需求。 关键词:数据库;管理;数据;采集系统;设计;实现; 前言: 以往传统数据的采集系统,仅对具体的系列及型号进行开发,不同的系统之间不具备兼容性及互操作性能,伴随装配种类不断增多、规模逐渐扩大化发展,专用系统运行维护的费用逐渐提升。种类繁多且放大的测试系统设备已经很难满足于实际的工作需求。故而,对于上述以往传统数据的采集系统自身所存在各种缺陷问题,急需研发由可实现重复利用公共资源数据采集所构成自动化通用数据采集的系统是当前最为紧迫研究课题及工作任务。鉴于此,本文主要针对以数据库的管理为基础下数据采集的系统设计与实现进行综述分析,望能够为相关专家及学者对这一课题的深入研究提供有价值的参考或者依据。 1、系统总体架构 针对数据的采集系统,选择硬件方面主要以开放性货价产品为主,因货价产品用着统一标准,便于后期升级、更新,如图1所示,为该系统总体架构。 为测试设备所提供电源。常用220V的交流电源、直流电源为24V±10%/5A,应用在点火装置直流电源为27V; 信号发生装置。模拟的信号源来发出信号,对所采集信号准确性进行验证,对所数据的采集卡当所采集信号的准确度进行校验; 控制卡。由研华公司所生产PCL-818H型号控制卡,配备在着块自带有继电器开关板,各为PCL-885、PCL-725。PCL-818H数字的输出端口、PCL-885自带有继电器开关板连接在一起,经控制箱端口及外部的电磁气动式阀门连接在一起;PCL-725数字输入的端口经控制箱及外部远程的遥控信号连接在一起; 传感器。不同类型及型号、量程的传感器,比如空压力类传感器、加速度类传感器、扭矩类传感器、静态压力式传感器、动态压力式传感器、位移式传感器等,上述传感器均在型号、量程方面存在着差异性,可应用在各方面测试操作当; 信号调理装置。预处理各种床干起所输出信号,如先性化、桥路平衡、电气平衡、滤波、放大等。部分传感器因直接输出为电信号,故可采用该信号调理装置; 数据的采集卡。A/D的转换装置性能优劣衡量指标即为:采样的分辨率(A/D的转换装置具体位数)、A/D的转换速度。系统内部采用12位数分辨率数据的采集卡。 图1 数据的采集系统总体架构示意图 2、系统软件的设计与实现 管理数据库内各种信息数据,便于用户的调用及查看操作,还可在该数据库内修改旧的任务或增添新任务,以能够更好地满足实际的使用需求。数据库内容主要包含着:硬件的资源信息、数据信息采集、传感器各项参数、任务信息等。设计数据库,属于软件系统平台综合设计当重要构成,系统使用期间数据库能可从信息数据库准确且迅速地调取信息,以让用户获取正确测控的结论数据。 2.1 系统软件的设计 2.1.1配置硬件接口的信息 在系统界面,用户能直接减速系统内部硬件的资源信息,方便后期对于测控系统维护及升级。系统主程序,其调用数据库后,向用户提供数据的采集卡及工控装置接口信息数据,可对维护技术员及用户起到提示的作用。但用户不能对内容进行任意修改处理,仅具备相应系统权限维护者才可在新增或修改硬件接口相应硬件期间进行增加或删除操作。针对新增硬件设备,维护者应对硬件资源注册信息进行查看,防止配置期间导致硬件出现断或地址冲突等情况。 2.1.2 配置任务信息 用户调用该项便可查看当前的测控任务具体配置状况,查看配置的信息期间可修改测控任务,还可在系统界面上实施修改处理操作。若用户在系统界面上选定测控任务,则与任务所对应配置将在系统界面当被显示出来,更改用户能够当成临时测控选择,便于存储以供后期使用。若需实现测控新任务,用户仅需输入新任务名字,在系统界面当选定相应通道,还要与该通道连接传感器的型号及名称,确定配置之后点击系统界面当保存键,便可把当前配置状况存储至数据库方便用户随时修改或调用。 2.1.3 配置数据管理 开始测控任务前期,确认了任务配置后,该系统会把关于测控任务所有信息数据存储于该数据库内,用户实施其余操作期间,该数据管理能自动化输出与相应操作之间存在关联数据信息,如图形显示期间,图形界面会自动化生成关于物理量参数值及

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值