2013-10-03 85 views
1

我有3張桌子。 我需要來自2個表格的信息,而第3個表格將它們鏈接起來。 有人可以給我一個使用連接的例子嗎? 在這個例子中,我需要被保險人的姓名,生效日期和他們保單的到期日期。加入3個表格,僅使用2個數據?

致死表

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 

正如你可以SEEI需要從表1 & 3的數據,但必須使用表2鏈接它們。 這是什麼類型的連接?我如何使用它們?

回答

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 

不確定是什麼問題。但如果問題只是「你能加入一張你不選擇的表格」,那麼答案是肯定的。

+0

謝謝。我有基本的數據庫課程(2),但剛剛進入SQL。我明白這句話和邏輯,但加入讓我把我的頭髮拉出來。我正在學習,謝謝! –

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* 

希望這會有所幫助。

+0

輸出應該是第一個名字,姓氏,生效日期,到期日期 –

+0

不想爲你寫,但幫助解釋:-)但爲了清晰起見,只需將選中的字段放入即可。例如:SELECT a.First_Name,a.Last_Name,c.Effective_Date等.... – user1135379

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 

您可以使用左連接替換內連接以查看每個凡人的記錄。

+0

謝謝JustinHui 這就是我需要看到的! 連接語法的順序是否重要? –

+0

不在INNER JOIN上。根據您在查詢中首先聲明的表,LEFT JOIN和RIGHT JOIN會有所作爲。請參閱http://www.sql-tutorial.net/SQL-JOIN.asp – JustinHui