gpt4 book ai didi

sql - 在 SQL 语句中将 'IN' 与子查询一起使用

转载 作者:行者123 更新时间:2023-12-02 16:05:24 25 4
gpt4 key购买 nike

在可以使用 JOIN 的地方,在 SQL 语句中使用“IN”关键字是否会带来性能问题?

SELECT xxx
FROM xxx
WHERE ID IN (SELECT Id FROM xxx)

最佳答案

不用,可以使用。

您可以在所有 RDBMS 中使用 IN、EXISTS 编写上面的查询,有些还支持 INTERSECT。

从语义上讲,这是一个半连接,“给我表 A 中的行,其中我在表 B 中至少有一个匹配项”。 INNER JOIN 是“给我所有匹配的行”

因此,如果 TableA 有 3 行,TableB 有 5 行匹配:

  • INNER JOIN 为 15 行
  • 半连接是 3 行

这就是为什么我在这里推送 IN 和 EXISTS 以及其他 SQL 类型:JOIN 是错误的,需要 DISTINCT 并且会更慢。

EXISTS 支持多列 JOIN,IN 在 SQL Server 中不支持(在其他数据库中支持)。

关于sql - 在 SQL 语句中将 'IN' 与子查询一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6966023/

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