QA@IT

【SQL】表の結合について

7795 PV

初めまして、ze_kuと申します。
非常に単純な質問で申し訳御座いません。

下記のような結合をする際のSQLが書けません。
(環境はpostgresです。)

Table : 個人情報
| コード1 | コード2 |
| 00001  | 00002  |
| 00001  | 00003  |
|      |      |

Table : コードマスタ
| コード |  名称  |
| 00001 | なまえ1 |
| 00002 | なまえ2 |
| 00003 | なまえ3 |
|      |      |

上記の2つのテーブルを下記の条件で結合し、
「コード1、名称、コード2、名称」を1行で表示したく思います。

条件:
 コード1(個人情報) = コード(コードマスタ)
 コード2(個人情報) = コード(コードマスタ)

JOINなどで対応できそうなのですが、正しい回答を得られません。

回答

多分一度の結合ですべて解決しようとされたんじゃないでしょうか。
単純にやるなら

select コード1, M1.名称 as コード1名称 ,コード2, M2.名称 as コード2名称
  from 個人情報 K
    left outer join コードマスタ M1
    on K.コード1 = M1.コード
      left outer join コードマスタ M2
      on K.コード2 = M2.コード

ですかね。試していないですが。
left outer joinが適しているかどうかは外部キーなどと相談してください。

あと今後はできるだけ「どういう事をためしてうまくいかなかった」なども質問に含めてください。

編集 履歴 (0)
  • 有難う御座います。
    また、今後は気を付けます。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。