当前位置:网站首页>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
边栏推荐
- form表单 post提交 数据量大的问题
- QT compilation qtxlsx Library
- Yangtao electronic STM32 Internet of things entry 30 step notes II. Cube ide download, installation, sinicization and setting
- Data deletion and modification (MySQL)
- 引用传递1
- 什么是RPC
- 第一性原理 思维导图
- How much inventory recording does the intelligent system of external call system of okcc call center need?
- 测试你的机器学习流水线
- 洋桃電子STM32物聯網入門30步筆記一、HAL庫和標准庫的區別
猜你喜欢
增强现实技术是什么?能用在哪些地方?
作文以记之 ~ 二叉树的后序遍历
STM32 uses Hal library. The overall structure and function principle are introduced
洋桃电子STM32物联网入门30步笔记二、CubeIDE下载、安装、汉化、设置
Asan minimalism
STM32使用HAL库,整体结构和函数原理介绍
SYS_ CONNECT_ BY_ Path (column, 'char') combined with start with connect by prior
Ansible Automation Operation and Maintenance details (ⅰ) Installation and Deployment, Parameter use, list Management, Profile Parameters and user level ansible operating environment Construction
396. Rotate Function
synchronized 实现原理
随机推荐
rust 使用tokio的Notify 和timeout实现类似可超时条件变量的效果
input元素添加监听事件
Notes on English class (4)
How browser works
让地球少些“碳”息 度能在路上
洋桃电子STM32物联网入门30步笔记三、新建CubeIDE工程和设置讲解
【深度好文】Flink SQL流批⼀体化技术详解(一)
匿名类型(C# 指南 基础知识)
LINQ学习系列-----1.4 匿名对象
对li类数组对象随机添加特性,并进行排序
耳穴减肥自身感受细节描述0422
Yangtao electronic STM32 Internet of things introduction 30 steps notes 1. The difference between Hal library and standard library
分组背包呀
Ajax cache prevention method
对OutputStream类的flush()方法的误解
洋桃电子STM32物联网入门30步笔记四、工程编译和下载
Anonymous type (c Guide Basics)
【精品】利用动态代理实现事务统一管理 二
[learning] audio and video development from scratch (9) -- nuplayer
Navicat remote connection MySQL