2009-09-03 22 views
5

Estoy usando Oracle SQL Developer para consultar un Oracle DB (no estoy seguro de qué versión es) y voy a utilizar el SQL que realizo para un informe de Crystal. Muchos de los informes que los desarrolladores anteriores han escrito no usan palabras clave JOIN para realizar las uniones (y, como resultado, no estoy demasiado familiarizado con las palabras clave JOIN).¿Qué hace (+) en Oracle SQL?

Muchas de las combinaciones que hacen se hacen en la instrucción WHERE. Notaré algo como esto.

Select * From TableA, TableB WHERE TableA.PrimaryKey(+) = TableB.ForeignKey 

Mi pregunta es sobre el (+). ¿Para qué sirve y cómo lo uso en mi código?

Respuesta

8

que representa una “combinación externa derecha” (a la derecha ya la = está en el lado derecho de la +).

SELECT * 
FROM TableA, TableB 
WHERE TableA.PrimaryKey(+) = TableB.ForeignKey 

es equivalente a

SELECT * 
FROM TableA 
RIGHT OUTER JOIN TableB 
    ON (TableA.PrimaryKey = TableB.ForeignKey) 
0

(+) se utiliza para realizar correcta combinación externa en Oracle RIGHT OUTER JOIN es una de las operaciones de combinación que le permiten especificar una cláusula JOIN Para más detalles http://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqlj57522.html

+1

El enlace que publicó es ** no ** para la base de datos de Oracle es para ** JavaDB ** (también conocido como "Derby") –

+0

Agregué ese comentario para tener una idea clara de qué combinación externa correcta es –