MySQL两个表合并使用UNION操作(mysql两表union)

MySQL两个表合并:使用UNION操作

在MySQL中,UNION操作可以将两个或多个表中的结果集合并成一个结果集。这种方法在许多情况下非常有用,例如在需要将具有相似结构的表进行合并时。如果您有两个不同的表格,想要将它们组合成一个新的表格,UNION 操作将是非常方便的工具。

UNION 操作让我们可以查询两个不同的 MySQL 表,使用相同的查询条件来查找到相同的数据。一般,UNION 操作要求被操作的两个表的列数和列类型相同,这样才可以有效地进行 UNION 操作。

下面是一个简单的MySQL表,其中包含两个表Employee和Salary

CREATE TABLE Employee (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
age int(11) NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE Salary (
id int(11) NOT NULL AUTO_INCREMENT,
emp_id int(11) NOT NULL,
salary int(11) NOT NULL,
PRIMARY KEY (id)
);

这两个表的结构都非常简单,一个包含员工的姓名和年龄,另一个包含员工的工资和员工编号。在这个示例中,我们要组合这两个表的数据,通过共同的 emp_id 值获取相应的工资和年龄信息。

SELECT id, name, age, NULL as salary
FROM Employee
UNION
SELECT NULL as id, NULL as name, NULL as age, salary
FROM Salary
ORDER BY id

在这个查询中,我们首先选择 Employee 表的数据,但是由于 Salary 表的数据没有出现在这个查询中,我们需要手动添加一些 NULL 值来匹配两个表的结构。同样的,当我们选择 Salary 表时,我们也需要添加 NULL 值来匹配另一个表的结构体。

在这个SELECT语句中,我们使用了UNION操作符。使用 UNION 时,我们需要确保列的数量和列类型是相同的,这意味着我们需要将空数据添加到其中一个表格的查询中。在这个示例中,我们使用了NULL关键字来添加空数据。

需要注意的是,我们在这个查询末尾添加了一个 ORDER BY 子句,以按 id 列的升序对结果进行排序。如果您不需要对结果进行排序,可以省略这个子句。

总结

组合两个表的数据可以使用 MySQL 的 UNION 操作。在此过程中,我们要确保两个表的列数和列类型是相同的,并使用 NULL 关键字来填充另一个表的结构体。 UNION 操作非常方便,可以让我们轻松地将不同表格的数据组合到一个表格中。


数据运维技术 » MySQL两个表合并使用UNION操作(mysql两表union)