【问题标题】:join three table in oracle 11g在 oracle 11g 中加入三个表
【发布时间】:2018-10-02 09:12:53
【问题描述】:

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

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;

请告诉我应该怎么做

【问题讨论】:

标签: sql oracle join select


【解决方案1】:

为了简化答案,我删除了所有显式列并将它们替换为 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

【讨论】:

  • Kamil G.,您的查询正在运行,但有一个问题...... POLICY_MASTER 是主表,其他是详细信息,POLICY_MASTER 有 1 行,其他有 2 行,结果我有 4 行。 ..,为什么?
  • 这就是连接的工作方式。我们正在将主表与保险公司详细信息连接起来,在您的情况下会产生 1*2 = 2 行。我们还将主表与子代理详细信息连接起来,生成 1*2 = 2 行。为了使所有组合可用,我们需要 2*2 = 4 行。
【解决方案2】:

需要在 from 子句中错过第三个表的内部连接。就是这样。或者你可以使用像

这样的 where 子句
from table1 a,table2 b,table3 c
where a.colname= b.colname and
            b.colname=c.colname.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-02
    • 2014-07-17
    • 2015-08-31
    • 2017-07-29
    • 2018-03-14
    • 1970-01-01
    • 2021-10-18
    • 2018-02-24
    相关资源
    最近更新 更多