PostgreSQL UNION 学习笔记

什么是 UNION

在 PostgreSQL 中,UNION 是一种结合多个 SELECT 查询结果的方法。UNION 可以将多个表或查询结果集合并为一个结果集,同时删除重复行。

UNION 语法

以下是 UNION 语法:

Copy Code
SELECT column1, column2, column3... FROM table_name1 UNION SELECT column1, column2, column3... FROM table_name2;

UNION 实例

假设我们有两个表:table1table2,它们都有一个相同的列 id,我们可以使用 UNION 来合并这两个表:

Copy Code
SELECT id, name, age FROM table1 UNION SELECT id, name, age FROM table2;

上述 SQL 语句会将 table1table2idnameage 列的值合并为一个结果集。如果存在相同的行,则只返回一个。

此外,UNION 还可以与其他操作符一起使用,如 WHERE、ORDER BY、GROUP BY 等。

例如,假设我们要查询两个表中年龄大于 18 岁的学生姓名和年龄,并按照年龄从小到大排序:

Copy Code
SELECT name, age FROM table1 WHERE age > 18 UNION SELECT name, age FROM table2 WHERE age > 18 ORDER BY age ASC;

上述 SQL 语句会先筛选出年龄大于 18 岁的学生,并合并两个表的筛选结果,最后按照年龄从小到大排序返回结果集。