SQL 两个集合所有列合并一起

SQL 两个集合所有列合并一起

SQL 两个集合所有列合并一起

在SQL中,我们经常需要处理多个表的数据,并且有时候需要将两个表的数据合并在一起进行查询或分析。在这种情况下,可以使用联合查询(UNION)来将两个集合的所有列合并在一起。

UNION操作

UNION操作用于将两个 SELECT 语句的结果集合并在一起,相当于将两个表的数据合并为一个结果集。在使用UNION操作时,需要注意以下几点:

  • 要求两个SELECT语句的列数相同,并且相对应的列的数据类型必须相同。
  • UNION操作会自动去重,即使两个结果集中有重复的数据,也只会返回一次。
  • UNION ALL操作与UNION操作类似,不过不会去重,会将所有数据都返回。

下面以一个简单示例来演示如何使用UNION操作将两个表的数据合并在一起:

假设我们有两个表,一个是学生表(students),包含学生的学号(id)和姓名(name);另一个是教师表(teachers),包含教师的工号(id)和姓名(name)。

首先创建这两个表并插入一些数据:

CREATE TABLE students (
    id INT,
    name VARCHAR(50)
);

CREATE TABLE teachers (
    id INT,
    name VARCHAR(50)
);

INSERT INTO students (id, name) VALUES (1, 'Alice');
INSERT INTO students (id, name) VALUES (2, 'Bob');
INSERT INTO students (id, name) VALUES (3, 'Cathy');

INSERT INTO teachers (id, name) VALUES (101, 'David');
INSERT INTO teachers (id, name) VALUES (102, 'Emily');

现在我们需要将学生表和教师表的数据合并在一起,并返回所有的记录。可以通过以下SQL语句实现:

SELECT id, name FROM students
UNION
SELECT id, name FROM teachers;

运行以上SQL语句,将得到以下结果:

| id  | name  |
| --- | ----- |
| 1   | Alice |
| 2   | Bob   |
| 3   | Cathy |
| 101 | David |
| 102 | Emily |

可以看到,使用UNION操作将学生表和教师表的数据合并在一起,并且去重返回了所有的记录。

UNION ALL操作

如果不需要去重,想要将所有数据都合并在一起返回,可以使用UNION ALL操作。以下是使用UNION ALL操作的示例:

SELECT id, name FROM students
UNION ALL
SELECT id, name FROM teachers;

运行以上SQL语句,将得到以下结果:

| id  | name  |
| --- | ----- |
| 1   | Alice |
| 2   | Bob   |
| 3   | Cathy |
| 101 | David |
| 102 | Emily |

可以看到,使用UNION ALL操作将学生表和教师表的数据合并在一起,并且返回了所有的记录,包括重复的记录。

结语

通过UNION操作,可以轻松实现将两个表的数据合并在一起进行查询。在实际应用中,联合查询是非常常用的操作,可以帮助我们更灵活地处理多表数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程