UNION 是 PostgreSQL 中用于合并两个或多个 SELECT 查询结果集的关键字。它返回所有唯一的行,消除了重复的行。以下是一个简单的例子:
-- 创建两个示例表
CREATE TABLE table1 (
    id serial PRIMARY KEY,
    name VARCHAR (100)
);

CREATE TABLE table2 (
    id serial PRIMARY KEY,
    name VARCHAR (100)
);

-- 向表中插入一些数据
INSERT INTO table1 (name) VALUES ('John'), ('Alice'), ('Bob');
INSERT INTO table2 (name) VALUES ('Alice'), ('Eve'), ('Bob');

-- 使用 UNION 合并两个表的结果
SELECT name FROM table1
UNION
SELECT name FROM table2;

在上面的例子中,UNION 合并了 table1 和 table2 中 name 列的结果,消除了重复的行。最终的结果集将包含所有唯一的名字。

如果你希望保留重复的行,可以使用 UNION ALL。例如:
-- 使用 UNION ALL 保留重复的行
SELECT name FROM table1
UNION ALL
SELECT name FROM table2;

请注意,使用 UNION 和 UNION ALL 时,两个查询的列数和数据类型必须相匹配。


转载请注明出处:http://www.zyzy.cn/article/detail/14142/PostgreSQL