PostgreSQL UNION 学习笔记
什么是 UNION
在 PostgreSQL 中,UNION 是一种结合多个 SELECT 查询结果的方法。UNION 可以将多个表或查询结果集合并为一个结果集,同时删除重复行。
UNION 语法
以下是 UNION 语法:
Copy CodeSELECT column1, column2, column3...
FROM table_name1
UNION
SELECT column1, column2, column3...
FROM table_name2;
UNION 实例
假设我们有两个表:table1
和 table2
,它们都有一个相同的列 id
,我们可以使用 UNION 来合并这两个表:
Copy CodeSELECT id, name, age
FROM table1
UNION
SELECT id, name, age
FROM table2;
上述 SQL 语句会将 table1
和 table2
的 id
、name
、age
列的值合并为一个结果集。如果存在相同的行,则只返回一个。
此外,UNION 还可以与其他操作符一起使用,如 WHERE、ORDER BY、GROUP BY 等。
例如,假设我们要查询两个表中年龄大于 18 岁的学生姓名和年龄,并按照年龄从小到大排序:
Copy CodeSELECT name, age
FROM table1
WHERE age > 18
UNION
SELECT name, age
FROM table2
WHERE age > 18
ORDER BY age ASC;
上述 SQL 语句会先筛选出年龄大于 18 岁的学生,并合并两个表的筛选结果,最后按照年龄从小到大排序返回结果集。