• SQL教程之 了解 SQL EXISTS 子句,当你应该考虑使用它时


    核心内容

    • EXISTS可以比使用IN或JOIN在某些条件下更快
    • EXISTS将比IN大型表更快。一般的经验法则应该是使用硬编码的值IN,而其他大多数东西都应该使用EXISTS
    • EXISTSJOIN如果JOIN必须使用DISTINCT从决赛表中删除重复项,将比 a 更快,否则JOIN更快
    • EXISTS也可用于反连接,与使用LEFT JOIN和WHERE子句组合相比,在某些情况下可能更受欢迎

    我想分享一些我使用 SQL 学到的东西,这些东西我直到最近才在我的职业生涯中使用过。我已经用 SQL 编码 3.5 年了,我才刚刚开始使用该EXISTS子句。因此,如果您还不知道并且已经知道,请不要感到难过——那就太好了!

    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);
    
    • 1
    • 2
    • 3

    为了演示和解释如何使用该EXIS

  • 相关阅读:
    那些自损八百的甲方要求
    在AgilePLM项目中使用积木报表
    Linux1._基本指令
    [CSharpTips]判断两条线段是否相交
    web3.0涉及的技术
    axios引入的详细讲解
    new和 delete 细细碎记录
    卡尔曼滤波与融合算法
    Java的三种技术架构是什么?
    webpack使用入门贴
  • 原文地址:https://blog.csdn.net/iCloudEnd/article/details/126832693