親子関係を持つテーブルでSQL文を用いて、欲しいデータを取得するには?(親子ともどもに条件があり)


BGKNK  2004-04-23 03:11:44  No: 83103  IP: [192.*.*.*]

現在 Visual Basic 6.0+Oracle DBのアーキテクチャーでシステム開発を行っていますが、
新たな要件の発生で対応に苦慮しております。
  具体的には以下の通りなのですが、何らか解決方法や類似ケースの経験談等をお教えいただければと
思い書き込みをさせて頂きました。

  <要件>
  DBにて親子関係を持たせている2つのテーブルがあり、以下の条件でテーブルを取得したい。

  <具体的には>
  
  ・親テーブル(家族テーブル)

  家族ID(PK)
  引越し履歴(Y/N)

  ・子テーブル(個人テーブル)

  家族ID
  名前
  個人ID(PK)
  会社員フラグ(Y/N)

  家族対個人は1対Nの関係になっています。

  <取得条件>
  引越し履歴のある家族を抽出して、その中で会社員の個人を抽出する。

  <悩んでいること>

  引越し履歴のある家族を抽出した後、Forループで家族に紐づく個人を毎回抽出するのは、
パフォーマンス上の問題と現在保持しているプログラムの構造上出来れば避けたいところです。

  何かうまく一発で上記の条件を満たせるようなSQL文や手法があれば教えて頂きたいと思います。
よろしくお願いいたします。

編集    削除
うにぃ  2004-04-23 03:55:50  No: 83104  IP: [192.*.*.*]

SQLでできます。

家族IDで2つのテーブルを結合して、
あとはその他の条件を指定してあげればOKです。

詳しいことは等結合だとか内部結合とか外部結合とかで検索するとすぐに出てきます。

編集    削除