gpt4 book ai didi

sql - 什么时候选择CROSS APPLY,什么时候选择EXISTS?

转载 作者:行者123 更新时间:2023-12-02 18:56:32 25 4
gpt4 key购买 nike

我读到,CROSS APPLY就像 JOIN 一样..我认为 JOIN 也可以通过 EXISTS 来完成(相关子查询)

我很困惑,使用 CROSS APPLY 和 EXISTS 有什么区别?

我什么时候应该针对 EXISTS 进行 CROSS APPLY?

最佳答案

CROSS APPLY 不只是像 JOIN。 JOIN 查找两组数据之间匹配(或不匹配)的行。 CROSS APPLY 是一种对您所应用的对象的每一行运行查询的方法。这可以充当过滤机制,类似于 JOIN 的工作原理,但它会将某些内容应用于每一行,因此需要以这种方式进行思考。

子查询中的 EXISTS 是一种完全不同的过滤机制。这是一种快速识别的方法,因为当它发现某些东西时,它会立即短路搜索。一般来说,您想要使用 EXISTS 的地方是当您可能会遇到过滤条件时,从而使搜索尽可能短。但是,EXISTS 并未找到所有匹配项。它只是找到第一个匹配项,然后停止搜索。

因此,虽然您可以通过这三种不同的方法获得相同的结果,但按照定义使用它们通常是正确的。如果您确实要连接两组数据,请使用 JOIN。如果您想针对数据集中的每一行运行一个进程(通常是一个过滤器),请使用 CROSS APPLY。如果您想要快速过滤可能的正匹配项,请使用 EXISTS。

关于sql - 什么时候选择CROSS APPLY,什么时候选择EXISTS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9665962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com