2024年10月07日 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;
上面的语句表示将两个查询的结果集合并在一起,不去除重复的行。
假设有两个表 users1
和 users2
,分别存储了用户的信息,我们可以使用 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 会保留所有的行,包括重复的行,所以在需要去重的情况下,应该使用 UNION。
本文链接:http://so.lmcjl.com/news/14830/