在甲骨文 11G 中加入三个表



我有三个表要加入选择查询..此查询不起作用

select policy_master.POLICY_REFER ,policy_master.CLIENT_NAME ,policy_master.ADRESS ,policy_master.POLICY_CLASS ,policy_master.POLICY_PRODUCT ,policy_master.EXECUTIVE_NAME ,policy_master.COMM_DATE ,
policy_master.EXPIRY_DATE ,policy_master.RENEWAL_DATE ,policy_master.GROSS ,policy_master.FED ,policy_master.FIF ,policy_master.STAMP_DUTY ,policy_master.PERMIUM ,policy_master.DESCRIPTION, 
POLICY_INSURER_DETAIL.INSURER_NAME,POLICY_INSURER_DETAIL.POLICY_NUMBER,POLICY_INSURER_DETAIL.P_SHARE,POLICY_INSURER_DETAIL.G_PREMIUM,POLICY_INSURER_DETAIL.BROKER_P,POLICY_INSURER_DETAIL.LEVY,
POLICY_INSURER_DETAIL.LEVY,POLICY_SUBAGENT_DETAIL.SUBAGENT_NAME,POLICY_SUBAGENT_DETAIL.BUSSINES_SHARE,POLICY_SUBAGENT_DETAIL.COMM_P,POLICY_SUBAGENT_DETAIL.COMM_VALUE
from POLICY_MASTER INNER JOIN POLICY_INSURER_DETAIL 
on policy_master.policy_refer = POLICY_INSURER_DETAIL.POLICY_REFER and
policy_master.policy_refer = POLICY_SUBAGENT_DETAIL.POLICY_REFER;

请告诉我我应该怎么做

为了简化答案,我删除了所有显式列并用select *替换了它们。

您只联接了两个表。您引用的是联接policy_insurer_detail中的policy_subagent_detail表(但未联接子代理详细信息表(。您应该联接此表并指定联接条件,以便能够从中检索列(就像您在关键字附近的列列表中所做的那样select(。

我还添加了表别名以使您的代码更短。

select *
from POLICY_MASTER pm
inner join POLICY_INSURER_DETAIL pid on 
pm.policy_refer = pid.POLICY_REFER
inner join POLICY_SUBAGENT_DETAIL psd on -- added join
pm.policy_refer = psd.POLICY_REFER

做第三个表的内部连接需要你错过了 from 子句。 就是这样 .OR 您可以使用 where 子句,例如

from table1 a,table2 b,table3 c
where a.colname= b.colname and
b.colname=c.colname.

最新更新