• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:3つの表の外部結合)

3つの表の外部結合

このQ&Aのポイント
  • 3つの表を結合して、特定の条件で外部結合する方法について説明します。
  • 表Aと表Bを特定の条件で結合し、その結果を表Cと外部結合することで、目的の結果を得ることができます。
  • ただし、単純に3つの表を結合することはできないので、注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

ちょっとリレーション勘違いしてました。 では、こんな感じで select 列C1, 列B3 from 表A, 表B, 表C where 列B1(+) = 列A2 and 列B2(+) = 'X' and 列A3(+) = 列C2 #今度はちゃんと確認しましたんで(^^;;

NAATAN
質問者

お礼

ありがとう御座います。 教えていただいた通りに実行してみたら 正常に処理されました。 この調子で4つ以上の表にもチャレンジしてみたいと思います。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

NAATANさんが質問に書いた条件を順番にwhere句に書いてみました。 select 列C1, 列B3 from 表A, 表B, 表C where 列A2 = 列B1 and 列B2 = 'X' and 列A3(+) = 列C2 です。

NAATAN
質問者

お礼

早速のご回答恐れ入ります。 教えていただいたSQLを実行したのですが、 やはり、列C2 = 'C02'の行が選択されません。 SELECT 列C1,表AB.列B3 FROM 表C ,(SELECT 列A3,列B3 FROM 表A,表B WHERE 列A2 = 列B1 AND 列B2 = 'X') 表AB WHERE 列C2 = 表AB.列A3(+) とすれば可能なのですが、表ABを別名で定義するのは パフォーマンスの都合上、出来れば避けたいのですが。

NAATAN
質問者

補足

申し訳ありません。 お礼の内容が間違っていました。 「列C2 = 'C02'の行が選択されません」ではなく、 「列C1 = 'C02'の行が選択されません」でした。