这是我之前提问的后续问题:Optimisation of an oracle query
我现在使用如下查询
select t1.column1, t2.column2
from table1@dev t1
where exists
( select *
from table2@dev
where t2.column2 = t1.column1
and t2.column3 > 0
)
order by column1
但问题是我无法从column2
访问t2
我收到错误
t2.column2无效标识符
使用EXISTS
?
提前致谢
答案 0 :(得分:2)
Exists
(顾名思义)仅仅检查该东西是否存在,它不会返回超出存在谓词的真/假的任何数据,所以否,这是不可能的从exists
语句返回数据。
要从多个表中选择某些内容,您需要加入它们,如下所示:
select t1.column1, t2.column2
from table1@dev t1
inner join table2@dev t2 on t2.column2 = t1.column1
where t2.column3 > 0
order by t1.column1