我想分享一些我使用 SQL 学到的东西,这些东西我直到最近才在我的职业生涯中使用过。我已经用 SQL 编码 3.5 年了,我才刚刚开始使用该EXISTS子句。因此,如果您还不知道并且已经知道,请不要感到难过——那就太好了!
该EXISTS子句是一组子查询表达式的一部分。有关可用子查询表达式的更多信息,您可以转到PostgreSQL 文档。
该EXISTS子句用于比较两个表并检查您的表是否具有另一个表中存在的值。还有一个NOT EXISTS子句,用于检查不在其他参考表中的那些项目。
当比较一个表是否存在另一个表中的记录时,这称为“半连接”。每当您使用WHERE带有IN关键字的子句时,这也称为半连接。Microsoft 使用此定义来描述半联接,“半联接是 U-SQL 的一种方式,它根据行集包含在另一个行集中的行来过滤行集”²。
语法如下所示:
SELECT col1
FROM tab1
WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
为了演示和解释如何使用该EXIS