gpt4 book ai didi

mysql - 解释命令中 select_type 列中的 DEPENDENT UNION 是什么?

转载 作者:行者123 更新时间:2023-11-29 13:32:39 25 4
gpt4 key购买 nike

来自mysql ref manual :“UNION 中的第二个或后续 SELECT 语句,取决于外部查询”。但是 UNION 查询如何依赖于外部查询呢?有人能给我一个明确的例子吗?这是什么意思?例如,在此查询中:

SELECT * FROM sometable 
WHERE id IN (
SELECT 1
UNION
SELECT 2 /* ! */
)

union 中的第二个 select 语句(本身就是子查询)具有 DEPENDENT UNION select_type,我不知道为什么,它一定只是 UNION,因为它不依赖于任何东西。

最佳答案

嗯,这种情况下的问题是 IN 运算符,因为 IN 子句中的子查询被重写为相关子查询。

相关子查询将为您提供“依赖子查询”或“依赖联合”(如果是联合)。

参见doc

The problem is that, for a statement that uses an IN subquery, the optimizer rewrites it as a correlated subquery. Consider the following statement that uses an uncorrelated subquery:

SELECT ... FROM t1 WHERE t1.a IN (SELECT b FROM t2); The optimizer rewrites the statement to a correlated subquery:

SELECT ... FROM t1 WHERE EXISTS (SELECT 1 FROM t2 WHERE t2.b = t1.a);

关于mysql - 解释命令中 select_type 列中的 DEPENDENT UNION 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19190681/

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