pgsql union all

2024年10月07日 pgsql union all 极客笔记

pgsql union all

在 PostgreSQL 中,UNION ALL 是一种用于将多个 SELECT 语句的结果集合并在一起的方法。与 UNION 不同,UNION ALL 不会去重结果集,而是简单地将所有的行组合在一起。UNION ALL 通常用于需要将多个查询结果合并在一起,而不需要去除重复行的情况。

语法

UNION ALL 的语法如下所示:

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;

上面的语句表示将两个查询的结果集合并在一起,不去除重复的行。

示例

假设有两个表 users1users2,分别存储了用户的信息,我们可以使用 UNION ALL 来将它们的信息合并在一起:

-- 创建 users1 表
CREATE TABLE users1 (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    age INTEGER
);

-- 插入数据
INSERT INTO users1 (name, age) VALUES ('Alice', 25);
INSERT INTO users1 (name, age) VALUES ('Bob', 30);
INSERT INTO users1 (name, age) VALUES ('Charlie', 35);

-- 创建 users2 表
CREATE TABLE users2 (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    age INTEGER
);

-- 插入数据
INSERT INTO users2 (name, age) VALUES ('David', 40);
INSERT INTO users2 (name, age) VALUES ('Eve', 45);
INSERT INTO users2 (name, age) VALUES ('Frank', 50);

-- 使用 UNION ALL 合并结果
SELECT name, age FROM users1
UNION ALL
SELECT name, age FROM users2;

运行上面的查询语句后,我们会得到合并后的结果集:

name     | age
---------+-----
Alice    | 25
Bob      | 30
Charlie  | 35
David    | 40
Eve      | 45
Frank    | 50

注意事项

  • UNION ALL 只合并结果集,不会去重。
  • 要使用 UNION ALL,两个 SELECT 语句的列数和数据类型必须一致。

通过使用 UNION ALL,我们可以很方便地将多个查询的结果集合并在一起,这在某些情况下会非常有用。但是需要注意的是,使用 UNION ALL 会保留所有的行,包括重复的行,所以在需要去重的情况下,应该使用 UNION。

本文链接:http://so.lmcjl.com/news/14830/

展开阅读全文