1

私は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

ご覧のとおり、テーブル 1 と 3 のデータが必要ですが、それらをリンクするにはテーブル 2 を使用する必要があります。これはどのタイプの結合ですか?それらをどのように使用しますか?

4

3 に答える 3

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 に答える
1

これはまだ簡単に参加できます。これが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 に答える