我已经查看了许多类似的问题,但尚未偶然发现/找到以下问题的正确解决方案。
给定以下三个表:
account
profile_id number (nullable)
bill_acct varchar
status varchar (nullable)
remarks varchar (nullable)
stage
ecpd_profile_id number (nullable)
bill_account varchar (nullable)
account_class varchar (nullable)
profile
ecpd_profile_id number
reg_prof_id number
我需要创建一个连接来选择以下内容:
account.bill_act, account.status, account.remarks, stage.account_class
在哪里
profile.ecpd_profile_id = (given number)
account.profile_id
并且profile.reg_prof_id
是等价的
stage.ecpd_profile_id
并且profile.ecpd_profile_id
是等价的
stage.bill_acct
并且account.bill_acct
是等价的
我试过以下...
select
account.bill_acct,
account.status,
account.remarks,
stage.account_class
from
registration_account account
join registration_profile profile
on account.profile_id = profile.reg_prof_id
join acct_stg stage
on stage.ecpd_profile_id = profile.ecpd_profile_id
and stage.bill_acct = account.bill_acct
where
profile.ecpd_profile_id = ?
这有效,但排除了阶段中不匹配的所有帐户条目。
我需要所有行account.bill_acct=stage.bill_acct
,为它存在的位置附加一个附加列stage.account_class
,否则为空。
多个连接总是让我失望。
想法?