Oracle11g 使用关联联接的SQL查询

Oracle11g 使用关联联接的SQL查询,oracle11g,oracle-sqldeveloper,Oracle11g,Oracle Sqldeveloper,我有一个要求“从基金表中选择其自身的基金id未作为基金表中其他行的替换基金id的所有行”。 每个基金记录都有使用旧状态和新状态创建的历史记录 每当某一特定基金经历作废过程(即旧状态变为新状态:null-->“已发行”-->“作废”-->“重新发行”)时,就会生成一个替代基金id 链接到原始记录,该原始记录被视为新的基金记录,历史记录为空-->“已发布”。 请参阅以下数据以了解更多说明 基金历史记录表: 列和数据是 基金\历史\ id基金\ id旧\状态新\状态 128 2444582空I 127

我有一个要求“从基金表中选择其自身的基金id未作为基金表中其他行的替换基金id的所有行”。 每个基金记录都有使用旧状态和新状态创建的历史记录

每当某一特定基金经历作废过程(即旧状态变为新状态:null-->“已发行”-->“作废”-->“重新发行”)时,就会生成一个替代基金id

链接到原始记录,该原始记录被视为新的基金记录,历史记录为空-->“已发布”。 请参阅以下数据以了解更多说明

基金历史记录表:

列和数据是

基金\历史\ id基金\ id旧\状态新\状态

128 2444582空I

127 2445579 V R

124 2445579 I v

123 2445579零I 129 2445562空I

基金表:

列及其数据是

基金ID基金名称原始基金ID替换基金ID

2444582 ABC基金2444582空

2445579 ABC基金2445579 2444582

2445562 XYZ基金2445562空

请注意:根据我的要求,我必须从基金表24455792445562中选择原始基金ID

由于2444582作为替换基金id链接到基金表中的任何其他记录,我必须忽略此记录,但选择2445579,因为这是带有 其中一条历史记录“null”到“issued”。另外,2445562在历史记录中也没有链接的任何替换记录,因此我需要选择此记录作为

有人能给我提供考虑性能的问题吗

如果有任何细节不清楚,请告诉我

问候
rajesh考虑了两个表hist和fund。所需查询为:

select * 
from fund f, hist h
where f.FUND_ID=h.FUND_ID and f.fund_id is not null
and f.FUND_ID not in (select nvl(REPLACEMENT_FUND_ID,'0') from fund)
and h.OLD_STATUS is null and h.NEW_STATUS='I';

任何人都可以向我提供查询。我已经准备好了查询,但需要我的同事提供一些信息,以比较是否有更好的方法进行查询?