• ベストアンサー

どちらかにあるものを両方出すクエリ

お世話になります、 二つのテーブルA、Bは以下のようになっています 【テーブルA】 Month A --------- 6   10 7   20 8   30 【テーブルB】 Month B --------- 6   40 8   50 9   60 上記二つのテーブルを Month    A    B ------------------------ 6       10    40 7       20 8       30    50 9            60 出すようなクエリはどう書くのでしょうか? MonthがAテーブルに必ずあるなら select A.Month, A.A, B.Month, B.B where A.Month = B.Month(+) でいけると思うのですが、このような場合どのようにするのでしょうか? よろしくお願いします。

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

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

間違えました・・・ select A.Month, A.A, B.B where A.Month = B.Month(+) union select B.Month, A.A, B.B where A.Month(+) = B.Month です

takataka111
質問者

お礼

ありがとうございます、 ストライクの回答でした。 勉強させていただきました。

その他の回答 (2)

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.3

最近のOracleなら FULL OUTER JOIN が使えます。

takataka111
質問者

お礼

そんなオプションは知りませんでした。 Oracle8.1.7でも使えるのでしょうか? ありがとうございます。

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

unionを使って2つのクエリーの和集合をとります。 select A.Month, A.A, B.Month, B.B where A.Month = B.Month(+) union select A.Month, A.A, B.Month, B.B where A.Month(+) = B.Month

関連するQ&A