• 締切済み

SQL 外部結合についての質問

SQLの外部結合についての質問です。 今テーブルA,B,Cがあるとします。 AはBに対して外部結合。BはCに対して外部結合 というようにする事は出来ますでしょうか。 SQLを実行してもエラーになります (例) select A.* from A,B,c where A.項目1 = B.項目1 (+) and B.項目2 = C.項目2 (+)

みんなの回答

  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.2

以下のような結合ならエラーになります。  AとBを外部結合(Aが主)  BとCを外部結合(Cが主) SQL> l select a.ename from emp a, emp b, dept c where a.empno = b.empno(+) and c.deptno = b.deptno(+) ; SQL> / where a.empno = b.empno(+) * 行5でエラーが発生しました。: ORA-01417: 表が少なくとも1つの他の表に外部結合されている可能性があります。 どうしてもやりたい場合はサブクエリにするとか、Viewにするとか すればよいです。 SQL> l select a.ename from emp a, (select b.empno,c.deptno from emp b, dept c where c.deptno = b.deptno(+) ) x where a.empno = x.empno(+) ; SQL> / ENAME -------------------- ALLEN WARD JONES MARTIN BLAKE CLARK KING TURNER JAMES FORD MILLER ちなみに、例で出された以下の結合ならエラーになりません。  AとBを外部結合(Aが主)  BとCを外部結合(Bが主)

すると、全ての回答が全文表示されます。
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

お使いのオラクルのバージョンは?また、エラーメッセージは? ORACLE9iR2ではエラーにはなりませんが。

すると、全ての回答が全文表示されます。

関連するQ&A