当前位置:网站首页>MySQL查询两张表属性值非重复的数据
MySQL查询两张表属性值非重复的数据
2022-04-23 08:24:00 【tag心动】
前言
在数据迁移中,我们经常需要比较两个表,以便在一个表中标识另一个表中没有相应记录的记录。
例如,我们有一个新的数据库,其架构与旧数据库不同。我们的任务是将所有数据从旧数据库迁移到新数据库,并验证数据是否正确迁移。要检查数据,我们必须比较两个表,一个在新数据库中,一个在旧数据库中,并标识不匹配的记录。
接下来我们使用union all关联两张表,完事使用临时表或者说派生表的方式来进行数据对比~
一、准备工作
创建表:t1
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`tid` tinyint(4) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',
`age` int(11) NULL DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`tid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
表:t1插入一条数据
INSERT INTO `t1` VALUES (1, '张三', 18);
创建表:t2
DROP TABLE IF EXISTS `t2`;
CREATE TABLE `t2` (
`tid` tinyint(4) NOT NULL AUTO_INCREMENT,
`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',
`age` int(11) NULL DEFAULT NULL COMMENT '年龄',
`gender` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
PRIMARY KEY (`tid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
表:t2插入一条数据
INSERT INTO `t2` VALUES (1, '张三', 18, '男');
注意:可以看到t1、t2表属性值对应都是一样的
二、使用测试
SQL
:
SELECT
tid,
nickname,
age
FROM
( SELECT tid, nickname, age FROM t1 UNION ALL SELECT tid, nickname, age FROM t2 ) tbl
GROUP BY
tid,
nickname,
age
HAVING
count(*) = 1
ORDER BY
tid;
运行之后当然是没有任何返回数据的,因为它们是没有什么差别的。不着急哈,咱们再来在t2表中插入一行数据:
INSERT INTO t2 ( nickname, age, gender )
VALUES
( '李四', 18, '男' );
再次执行SQL(因为‘李四’这条数据,表t1、t2相关属性值两表不存在重复就会查询出来):
版权声明
本文为[tag心动]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_36565692/article/details/124356444
边栏推荐
- HAL库的RCC简介
- 洋桃电子STM32物联网入门30步笔记三、CubeMX图形化编程、设置开发板上的IO口
- ATSS(CVPR2020)
- vmware 搭建ES8的常见错误
- 'bully' Oracle enlarged its move again, and major enterprises deleted JDK overnight...
- Get the absolute path of the class according to the bytecode
- 【路科V0】验证环境2——验证环境组件
- LINQ学习系列-----1.4 匿名对象
- 关于cin,scanf和getline,getchar,cin.getline的混合使用
- 数据可视化:使用Excel制作雷达图
猜你喜欢
Reference passing 1
Ansible Automation Operation and Maintenance details (ⅰ) Installation and Deployment, Parameter use, list Management, Profile Parameters and user level ansible operating environment Construction
5.6 comprehensive case - RTU-
增强现实技术是什么?能用在哪些地方?
STM32使用HAL库,整体结构和函数原理介绍
K210学习笔记(二) K210与STM32进行串口通信
Using qlst excel file
一个必看的微信小程序开发指南1-基础知识了解
MATLAB 画五星红旗
Overview of bus structure
随机推荐
'恶霸' Oracle 又放大招,各大企业连夜删除 JDK。。。
Yangtao electronic STM32 Internet of things introduction 30 steps notes 1. The difference between Hal library and standard library
idea配置连接远程数据库MySQL,或者是Navicat连接远程数据库失败问题(已解决)
洋桃电子STM32物联网入门30步笔记四、工程编译和下载
Get the absolute path of the class according to the bytecode
线程的调度(优先级)
Excle plus watermark
测试你的机器学习流水线
HAL库的RCC简介
ATSS(CVPR2020)
[C语言] 文件操作《一》
MATLAB 画五星红旗
Queue (C language / linked list)
匿名类型(C# 指南 基础知识)
Navicat远程连接mysql
怎样读取Excel表格到数据库
One click cleanup of pycharm and jupyter cache files under the project
Detailed explanation of ansible automatic operation and maintenance (I) installation and deployment, parameter use, list management, configuration file parameters and user level ansible operating envi
How much inventory recording does the intelligent system of external call system of okcc call center need?
Large amount of data submitted by form post