私は3つのテーブルを持っています。表A、表Bおよび表Cには、主キーとしてそれぞれid1、id2、id3があります。外部結合の交換方法
ID2は、我々は3行を取得クエリを以下の場合は
ID1は、クエリを次のために、我々は5行
select *
from A
where id3=123;
をC.
で外部キーを取得しているAとCの両方で外部キーであります
残りの2つの行を取得するには、外部結合を
select *
from A,B,C
where C.id3=123
AND A.id1=C.id1(+)
私は必要な出力
を取得していますが、私は外部結合を置き換えることができた使用して、「存在しない」のラインクエリまたは使用中のような任意の簡単な方法はありますか?
は、なぜあなたは外部結合を交換したいのですか?それは非常に一般的でコンパクトで、他のオプションと同じくらい速く動作するはずです。私は 'OUTER JOIN'は標準のSQLであるため、Oracleのための'(+) '表記はそうではありません - それは後方互換性のためだけのものです。 –
インラインクエリはそれよりはるかに高速ですが、複数の行 –
右の_results_で始めると、パフォーマンスが心配です。内部結合は間違った結果をもたらします。したがって、これはオプションではありません。 –