2012-04-13 14 views
4

Ich habe jetzt mit PLSQL-Entwickler zu tun, das ist mein allererstes Mal. Und ich finde diese Art der Abfrage

(+) Funktion in PLSQL

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

ich die Funktion des (+) in der Abfrage fragen. Könnt ihr bitte so freundlich sein, es zu erklären?

Antwort

4

interpretiert werden join, die von Oracle übernommen und entlassen, wenn ANSI die SQL-Sprache tatsächlich standardisiert . Weitere Informationen finden Sie in der Oracle-Dokumentation unter this entry.

4

Dies ist Oracle SQL OUTER JOIN-Syntax

Es kann Es ist die alte Syntax für eine äußere als

select * from tableA 
OUTER JOIN tableB ON tableA.field1 = tableB.field1 
+0

+1 für die Ansicht einen besseren Weg werden würde –

2

von der Oracle Dokumentation:

(+) zeigt an, dass die vorangehende Spalte die äußeren Säule in einem Join verbinden ist.

1

Es kann als

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

(+) Operator verwendet wird, zeigt an, dass es alle Zeilen aus der rechten Tabelle (Matching und nicht matching) beiden Reihen von der rechten Tabelle zurück. Und übereinstimmende Zeilen werden von der linken Tabelle zurückgegeben.
Wenn Zeilen nicht mit der richtigen Tabelle übereinstimmen, wird null zurückgegeben.

1

+ wird verwendet, um die mathematischen und nicht gemachten Datensätze aus der Tabelle abzurufen.

Beispiel:

Tisch A und Tabelle B

wenn Sie verwenden wie A.column1=B.column1(+)

es retrives die unmached Sätze aus der Tabelle A und seinen Namen als linke äußere Verknüpfung.

0

Das JOIN Oracle spezifische Schreibweise ist für eine LEFT OUTER

Exemple:

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

Die Abfrage neu geschrieben

SELECT ... 
    FROM a 
LEFT JOIN b ON b.id = a.id