1

我有 3 张桌子。我需要来自 2 个表的信息,而第 3 个表链接它们。有人可以给我一个使用连接的例子吗?对于这个例子,我需要被保险人的姓名、保单的生效日期和到期日期。

凡人桌

   SQL> desc mortal
 Name
 ---------------------
 MORTAL_ID
 SEX_TYPE_CODE
 FIRST_NAME
 LAST_NAME
 DOB
 MARITAL_STATUS_CODE
 SSN
 MIDDLE_NAME
 WORK_PHONE

被保险人(链接)表

SQL> desc insured    
 Name
 ------------------------
 INSURED_ID
 INSURED_TYPE_CODE
 POLICY_ID
 MORTAL_ID
 BANK_ACCOUNT_NUM
 INSURED_NUM

政策表

 SQL> desc policy
     Name
     ---------------------------
     POLICY_ID
     PLAN_ID
     POLICY_STATUS_TYPE_CODE
     PAYER_GROUP_ID
     EFFECTIVE_DATE
     POLICY_NUM
     EXPIRE_DATE

如您所见,我需要表 1 和 3 中的数据,但必须使用表 2 来链接它们。这是什么类型的连接?我该如何使用它们?

4

3 回答 3

1

这仍然是一个简单的加入。这是一种方法。

select m.first_name, m.last_name, p.effective_date, p.expired_date
from mortal m
  inner join policy p
    on p.policy_id = i.policy_id
  inner join insured i
    on i.mortal_id = m.mortal_id

不确定是什么问题。但如果问题只是“你能加入一个你没有从中选择的表吗”,那么答案是肯定的。

于 2013-10-03T18:41:21.837 回答
1

您只需要加入表格。连接的类型取决于您要达到的目标。下面是一个基本示例:

SELECT a.field, c.field 
FROM [Mortal Table] a 
JOIN [Insured Table] b ON a.MORTAL_ID=b.MORTAL_ID 
JOIN [Policy Table] c on b.POLICY_ID=c.POLICY_ID 
*WHERE Clause*

希望这可以帮助。

于 2013-10-03T18:41:42.490 回答
1

像这样的东西?

SELECT mortal.*, policy.*
FROM mortal 
INNER JOIN insured ON insured.MORTAL_ID = mortal.MORTAL_ID
INNER JOIN policy ON insured.POLICY_ID = policy .POLICY_ID

您可以用左连接替换内连接,以查看每个凡人的记录。

于 2013-10-03T18:44:42.783 回答