4

私は今、PLSQL開発者を扱っていますが、これは初めてです。そして、私はこの種のクエリを見つけました

select * from tableA, tableB
where tableA.field1 = tableB.field1(+)

クエリの の機能が気(+)になります。皆さん、とても親切に説明していただけますか?

4

6 に答える 6

5
where tableA.field1 = tableB.field1(+)

これは、Oracle によって採用された外部結合の古い構文であり、ANSI が実際に SQL 言語を標準化したときに冗長になりました。Oracle自身はouter join、この古い構文に優先して使用することを提案しています(以下のリンクから):

Oracle結合演算子ではなくFROM句構文を使用することをお薦めします。OUTER JOIN

詳細については、Oracle ドキュメントのこのエントリを参照してください。

于 2012-04-13T07:53:55.683 に答える
4

これは、Oracle SQL OUTER JOIN 構文です。

次のように解釈できます。

select * from tableA
OUTER JOIN tableB ON tableA.field1 = tableB.field1
于 2012-04-13T07:53:32.790 に答える
2

オラクルのドキュメントから:

(+) 前の列が結合の外部結合列であることを示します。

于 2012-04-13T07:54:30.303 に答える
1

+テーブルから、一致したレコードと一致していないレコードを取得するために使用されます。

例:

テーブルAとテーブルB

のように使用している場合A.column1=B.column1(+)

テーブルから未一致のレコードを取得し、左外部A結合と呼びます。

于 2014-09-29T15:35:03.820 に答える
1

として使用できます

select * from tableA right outer join tableB where tableA.field1 = tableB.field1

(+) 演算子は、右側のテーブル (一致するものと一致しないもの) のすべての行を、右側のテーブルの両方の行から返すことを示します。そして、一致する行が左側のテーブルから返されます。
正しいテーブルの行が一致しない場合は、null が返されます。

于 2013-01-23T07:05:03.960 に答える
0

これは、LEFT OUTER JOIN の Oracle 固有の表記法です。

例:

select ...
from a,b
where a.id=b.id(+)

クエリが書き直される

SELECT ...
     FROM a
LEFT JOIN b ON b.id = a.id
于 2014-12-18T19:51:39.623 に答える