Oracle-从主表及其历史记录表中的客户记录中选择

时间:2018-12-14 10:48:37

标签: oracle

我有3个表-帐户表,贷款表和loan_history表。 贷到帐户是一对多的关系。

对于贷款表中的所有客户记录,我希望从账户表中获得详细信息。此外,我还希望贷款记录中有客户记录,而不是贷款主表中的客户记录,并从帐户表中获取详细信息。

如何在单个查询中实现?

示例:

select loan.id, acct1.number, acct1.type
from loan, acct1
where loan.cust_id = acct1.cust_id
and acct1.id = (select max(acct2.id) from account acct2
                   where acct1.id = acct2.id);   

现在如何从历史记录表中找到丢失的客户?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那不是一个简单的NOT IN子句吗?参见最后一行:

select loan.id, acct1.number, acct1.type
from loan, acct1
where loan.cust_id = acct1.cust_id
and acct1.id = (select max(acct2.id) from account acct2
                   where acct1.id = acct2.id)
and acct1.id not in (select h.id from loan_history h)     --> this line