• ベストアンサー

unionでマージした副問合せを結合

2つの表をunionでマージした結果を副問合せで使用し、この副問合せを他の表とwhereで結合するとORA-00918: 列の定義が未確定です。がでます。こんな感じです。 副問合せそのものは単独で実行してもエラーにならないので結合に問題があるようです。 どなたか回答お願いします。行き詰っています。 select as.xx1,asxx2 from (select * from aa union select * from bb) as, af where as.xx1=af.xx1;

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

  • ベストアンサー
  • hogya
  • ベストアンサー率67% (49/73)
回答No.1

結合したテーブル間でカラム名が重複しているかと思いますので、提示のSQLの場合のテーブルの定義を書かないとなんともだと思います。 あと、「select as.xx1,asxx2 」これの「asxx2 」はタイポですよね?

super1103
質問者

補足

早速ありがとうございます。ご指摘の通りタイポです。asにxx1カラムは1つで、afテーブルも同じなのですが重複しているとは、もう少し詳しく教えて頂いていいですか?この副問合せにunionを使っている事じたいに問題はないんでしょうか?

その他の回答 (1)

  • hogya
  • ベストアンサー率67% (49/73)
回答No.2

副問合せにunionを使っている事自体に問題はないですね。 「こんな感じ」ではなくて、実際にxx1とxx2しかないシンプルなテーブルを3つ用意して試してみましたか?

super1103
質問者

お礼

ご指摘の通りシンプル版をつくっみたら出来ました。チェックしたつもりがカラムの重複が1か所ありました。 基礎的な事を忘れていました。ご指摘ありがとうございました

関連するQ&A