sqls如下:
select T1.a from T1 where T1.b in (select T2.b from T2 where T2.b = 'b' and T1.c = 'c')
select T1.a from T1 where T1.b in (select T2.b from T2 where T2.b = 'b') and T1.c = 'c'
答案 0 :(得分:0)
第一个是:
select T1.a
from T1
where T1.b in (select T2.b from T2 and T1.c = 'c')
T1
的引用是外部查询。这是允许的。事实上,相关子查询需要它,这是SQL语言的一个重要部分。
在这种情况下,第二个版本更为可取。当直接在from
。
答案 1 :(得分:0)
第二个条件引用表T1
,它是外部查询中的引用。所以你的两个查询都被执行了。你也可以像这样实现你的结果
select T1.a from T1 where T1.c = 'c' and T1.b in (select T2.b from T2 and )
您的第二个条件始终是T1
,因此在您的查询中它的位置无关紧要。