MySQL 如何合并两个MySQL表

MySQL 如何合并两个MySQL表

MySQL是一款常用的关系型数据库管理系统,其具有高效、稳定、易用等特点,在各行各业的应用十分广泛。当我们要将两个MySQL表中的数据进行合并时,该如何操作呢?

为了更好地理解与学习,本文将采用实例来阐述如何合并MySQL表。假设我们有两张表table1table2,其中table1的结构如下:

CREATE TABLE `table1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

table2的结构如下:

CREATE TABLE `table2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `address` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

两张表中都有id字段,但是table1中没有address字段,而table2中没有age字段,接下来我们将学习如何实现将这两张表的数据进行合并。

阅读更多:MySQL 教程

使用UNION ALL关键字合并

在MySQL中,合并两张表最简单的做法就是使用UNION ALL关键字。UNION ALL将会将两张表的各自所有行合并在一起,而不做任何去重操作(若需要去重,使用UNION),如下:

SELECT * FROM table1
UNION ALL
SELECT * FROM table2

使用JOIN关键字合并

但是在实际应用中,通常情况下需要将两个表中的某些列进行合并,此时可使用JOIN关键字。JOIN是将两张表中的数据按照某列进行匹配,匹配成功后将两张表中匹配的行合并在一起,如下:

内连接(INNER JOIN)

内连接操作会将两张表中匹配的行合并,其中匹配的列的数据在结果集中显示一次。

SELECT t1.id, t1.name, t1.age, t2.address
FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.id

左连接(LEFT JOIN)

左连接操作将保留左边表的全部数据,并在右边表中查找匹配的行。 如果没有匹配,右侧将填充 NULL 值。

SELECT t1.id, t1.name, t1.age, t2.address
FROM table1 t1
LEFT JOIN table2 t2
ON t1.id = t2.id

右连接(RIGHT JOIN)

右连接操作将保留右侧表的全部数据,并在左侧表中查找匹配的行。 如果没有匹配,左侧将填充 NULL 值。

SELECT t1.id, t1.name, t1.age, t2.address
FROM table1 t1
RIGHT JOIN table2 t2
ON t1.id = t2.id

至此,我们已经学习了两种合并MySQL表的方法,可以根据具体的需求选择不同的操作,实现数据的快速合并。

结论

本文向读者介绍了如何使用UNION ALLJOIN关键字来合并两个MySQL表。UNION ALL将两个表中的数据合并在一起,JOIN则是将两个表的相匹配的数据合并。以上两种方法都可以根据实际需求进行使用。希望本文能够对读者有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程