MySQL实现多个表数据去重复(mysql 两表去重复)

MySQL实现多个表数据去重复

在MySQL数据库中,如果存在多个表数据存在重复,我们需要将这些重复的数据去重并合并为一张表。这时我们可以通过使用SQL语句来实现,这里我们以主键为关联字段来进行数据去重和合并。

步骤如下:

1.创建两张含有重复数据的表。

创建第一张表:

CREATE TABLE `table1` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900__ci;

INSERT INTO `table1` (`id`, `name`, `age`) VALUES

(1, ‘张三’, 18),

(2, ‘李四’, 20),

(3, ‘王五’, 22),

(4, ‘张三’, 18),

(5, ‘李四’, 20);

创建第二张表:

CREATE TABLE `table2` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900__ci;

INSERT INTO `table2` (`id`, `name`, `age`) VALUES

(1, ‘赵六’, 25),

(2, ‘李四’, 20),

(3, ‘王五’, 22),

(4, ‘张三’, 18),

(5, ‘钱七’, 23);

2.使用UNION ALL语句将两张表合并。

SELECT * FROM table1

UNION ALL

SELECT * FROM table2;

3.使用GROUP BY语句按照主键字段去重。

SELECT DISTINCT id, name, age

FROM (

SELECT * FROM table1

UNION ALL

SELECT * FROM table2

) AS t

GROUP BY id;

执行上述SQL语句后,可以得到不含重复数据的结果集。其中GROUP BY语句会按照主键字段(这里是id)对结果集进行去重,确保输出结果集中不含有重复的数据。

通过这种方式,我们可以轻松地将多张含有重复数据的表去重,得到一张不含重复数据的表。当然,在实际的开发中,我们同样可以通过编写程序实现数据去重和合并的功能。能够让程序能够更方便快捷地完成数据操作。


数据运维技术 » MySQL实现多个表数据去重复(mysql 两表去重复)