かなめのロジック

フリーSEの雑記ブログ。ORACLEやPostgreSQL、情報セキュリティ、金融について主に書いています。

自己結合の使用例1(異なる項目での結合)

time 2016/10/27

自己結合の使用例1(異なる項目での結合)

自己結合とは、同じテーブル同士で結合することを指しますが、どのような場面で使うのでしょうか。

自己結合の使用例を2部構成で紹介します。

まずは第1部として、同テーブルの異なる項目での自己結合の使用例を紹介します。

sponsored link

異なる項目での自己結合の使用例

同テーブルの異なる項目での自己結合での使用例は、上位のデータの取得するようなケースです(循環リレーションシップ)。

具体的には、以下のようなケースです。

  • 社員マスタにおいて、ある社員の上司のデータを取得する
  • 組織マスタにおいて、ある組織の上位の組織(人事課の上位は総務部など)のデータを取得する

ポイントは、テーブルの項目の一つに上位のIDを持っていることです。

社員マスタを例に自己結合を考える

以下のような社員マスタを例に考えてみます。

上司の氏名も含めた社員情報

上司の氏名も含めた社員情報を出力する場合を考えてみます。

社員のID・氏名・上司のID・上司の氏名を出力します。ただし、上司がいない場合は上司のID・上司の氏名はNULLとします。

特定の条件の合致する上司に属する社員情報

特定の条件の合致する上司に属する社員情報を出力する場合を考えてみます。

1990年より過去に入社している社員の部下社員のID・氏名を出力します。

上司がマスタに存在しない社員情報

上司がマスタに存在しない社員情報を出力する場合を考えてみます。

該当する社員のID・氏名を出力します。ただし、上司のIDがNULLの社員は対象外とします。

関連

sponsored link

管理人

かなめ

フリーの業務系システムエンジニア。情報処理安全確保支援士。 ORACLEと金融と子育ての狭間で、元気に楽しくやってます。 [詳細]

管理人twitter

ブログ村



sponsored link