select *
from OuterQueryTable
where OuterQueryColumn in (select OuteryQueryColumn
from InnerQueryTable)
InnerQueryTable中不存在OuterQueryColumn。为什么这会导致成功的查询而不是错误?内部查询的预期输出是什么?
答案 0 :(得分:2)
由于外部作用域,该列存在于内部作用域中,即不会编译:
select *
from OuterQueryTable A
where OuterQueryColumn in (select B.OuteryQueryColumn
from InnerQueryTable B)
您的初始查询在逻辑上等同于:
select *
from OuterQueryTable