Antes de Oracle 9i, la sintaxis tradicional para realizar los Joins
fue el lenguaje disponible para realizar Joins. De ahí en adelante. Oracle ha
introducido un nuevo lenguaje que cumple con el Estándar ANSI SQL 1999. Esto no
ofrece beneficios en el performance sobre la sintaxis tradicional. Natural
Join, outer y cross join pueden ser escritos en ambas la tradicional y la ANSI
SQL.
Sintaxis ANSI SQL: 1999
SELECT table1.column, table2.column
FROM table1
[NATURAL JOIN table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2 ON (table1.colum_name = table2.colum_name)] |
[LEFT| RIGHT | FULL OUTER JOIN table2 ON (table1.colum_name =
table2.colum_name)] |
[CROSS JOIN table2];
Sintaxis Oracle Tradicional
SELECT table1.column, table2.column
FROM table1, table2
[WHERE (table1.column_name = table2.column.name)] |
[WHERE (table1.column_name(+) = table2.column.name)] |
[WHERE (table1.column_name = table2.column.name)(+)] ;
Si ningún JOIN o menos que N-1 JOINS son especificados en la clausula
WHERE, donde N se refiere al número de tablas en la consulta. Entonces un
Producto Cartesiano o Cross Join es desarrollado. Si un número de condiciones
Join son especificadas, entonces la primera condición especifica un Join Natural,
mientras la segunda condición especifica la sintaxis de outer left y right join
en el ejemplo de la sintaxis anterior.
Comentarios
Publicar un comentario