我在获取任务的正确查询时遇到问题。假设我们有 4 个带有以下列的表
Table Column Column
one abc
two abc cde
three cde def
four def dt
现在表四中的列 dt 是 Date 数据类型。
我试图从表一中获取所有数据,其中 dt 中的日期大于 2012/01/01。abc、cde 和 def 列是相关的
我正在做这样的事情:
Select *
from one t
where Exists (Select a.abc
from two a
where a.abc = t.abc
and Exists (Select b.cde, b.def
from three b
where b.cde = a.cde
and Exists (select c.def
from four c
where c.def= b.def
abd c.dt >= toDate('2012-01-01', 'YYYY-MM-DD')
)
)
);
我使用内连接尝试了同样的事情,但是内连接给出的行数实际上比表在某些情况下的更多。基本上它复制了行。任何帮助深表感谢。我也看了不同的,看起来它增加了成本。