八月 31, 2023
摘要:在本教程中,您将学习如何使用 PostgreSQL 的INTERSECT
运算符组合两个或多个查询的结果集。
目录
PostgreSQL INTERSECT 运算符简介
与 UNION 和 EXCEPT 运算符类似,PostgreSQL 的INTERSECT
运算符将两个或多个 SELECT 语句的结果集组合成一个结果集。
INTERSECT
运算符返回两个结果集中可用的任何行。
下图显示了INTERSECT
运算符产生的最终结果集。
最终结果集由圆 A 与圆 B 相交的黄色区域表示。
下面说明了INTERSECT
运算符的语法:
SELECT select_list
FROM A
INTERSECT
SELECT select_list
FROM B;
要使用INTERSECT
运算符,SELECT
语句中出现的列必须遵循以下规则:
SELECT
列表中的列数及其顺序必须相同。- 列的数据类型必须兼容。
带 ORDER BY 子句的 INTERSECT 操作
如果要对INTERSECT
运算符返回的结果集进行排序,请将ORDER BY
放在查询列表中的最终查询处,如下所示:
SELECT select_list
FROM A
INTERSECT
SELECT select_list
FROM B
ORDER BY sort_expression;
PostgreSQL INTERSECT 运算符示例
我们将使用 UNION 教程中创建的top_rated_films
和most_popular_films
表:
top_rated_films
表:
most_popular_films
表:
要获取热门的同时也是评分最高的电影,您可以使用INTERSECT
运算符,如下:
SELECT *
FROM most_popular_films
INTERSECT
SELECT *
FROM top_rated_films;
结果集返回了同时出现在两个表中的一部影片。
在本教程中,您学习了如何使用 PostgreSQL 的INTERSECT
运算符组合多个查询返回的结果集。