- ベストアンサー
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;
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
結合したテーブル間でカラム名が重複しているかと思いますので、提示のSQLの場合のテーブルの定義を書かないとなんともだと思います。 あと、「select as.xx1,asxx2 」これの「asxx2 」はタイポですよね?
その他の回答 (1)
- hogya
- ベストアンサー率67% (49/73)
回答No.2
副問合せにunionを使っている事自体に問題はないですね。 「こんな感じ」ではなくて、実際にxx1とxx2しかないシンプルなテーブルを3つ用意して試してみましたか?
質問者
お礼
ご指摘の通りシンプル版をつくっみたら出来ました。チェックしたつもりがカラムの重複が1か所ありました。 基礎的な事を忘れていました。ご指摘ありがとうございました
補足
早速ありがとうございます。ご指摘の通りタイポです。asにxx1カラムは1つで、afテーブルも同じなのですが重複しているとは、もう少し詳しく教えて頂いていいですか?この副問合せにunionを使っている事じたいに問題はないんでしょうか?