任何人都可以解释该查询的执行方式,并且它是相关的嵌套查询吗?
select distinct id
from activity ac3
where ac3.activity_id = 151 and ac3.id in
(select ac2.id from activity ac2 where ac2.activity_id = 150)
答案 0 :(得分:0)
它不是相关子查询。外部查询和嵌套查询之间没有链接。请参阅相关子查询here的示例。
答案 1 :(得分:0)
嵌套子查询可以嵌套在其他子查询中,它是一个select语句,嵌套在另一个select语句中,并将返回中间结果。 SQL首先执行最里面的子查询,然后再执行下一级。子查询的结果是主查询的查询条件。
查询执行如下 主查询->子查询->子子查询等等。
相关子查询,子查询使用外部查询中的值。对于外部查询处理的每一行,子查询都会被评估一次。这意味着子查询被重复执行,对于外部查询可能选择的每一行,都会重复执行一次。
这是不相关的子查询。
答案 2 :(得分:0)
这不是一个相关查询。如果子查询依赖于最外部查询的结果,则它是一个相关查询。您需要了解更多。
这是一个简单的子查询。
执行计划:select ac2.id from activity ac2 where ac2.activity_id = 150;
此查询将首先执行,主查询依赖于此查询。