La sintaxis expuesta anteriormente pertenece a ACCESS, en donde todas las sentencias con la sintaxis funcionan correctamente. Los manuales de SQL-SERVER dicen que esta sintaxis es incorrecta y que hay que añadir la palabra reservada OUTER: LEFT OUTER JOIN y RIGHT OUTER JOIN. En la práctica funciona correctamente de una u otra forma.
No obstante, los INNER JOIN ORACLE no es capaz de interpretarlos, pero existe una sintaxis en formato ANSI para los INNER JOIN que funcionan en todos los sistemas. Tomando como referencia la siguiente sentencia:
SELECT
Facturas.*,
Albaranes.*
FROM
Facturas
INNER JOIN
Albaranes
ON
Facturas.IdAlbaran = Albaranes.IdAlbaran
WHERE
Facturas.IdCliente = 325
La transformación de esta sentencia a formato ANSI sería la siguiente:
SELECT
Facturas.*,
Albaranes.*
FROM
Facturas, Albaranes
WHERE
Facturas.IdAlbaran = Albaranes.IdAlbaran
AND
Facturas.IdCliente = 325
Como se puede observar los cambios realizados han sido los siguientes:
Todas las tablas que intervienen en la consulta se especifican en la cláusula FROM. Las condiciones que vinculan a las tablas se especifican en la cláusula WHERE y se vinculan mediante el operador lógico AND.Referente a los OUTER JOIN, no funcionan en ORACLE y además conozco una sintaxis que funcione en los tres sistemas. La sintaxis en ORACLE es igual a la sentencia anterior pero añadiendo los caracteres (+) detrás del nombre de la tabla en la que deseamos aceptar valores nulos, esto equivale a un LEFT JOIN:
SELECT
Facturas.*,
Albaranes.*
FROM
Facturas, Albaranes
WHERE
Facturas.IdAlbaran = Albaranes.IdAlbaran (+)
AND
Facturas.IdCliente = 325
Y esto a un RIGHT JOIN:
SELECT
Facturas.*,
Albaranes.*
FROM
Facturas, Albaranes
WHERE
Facturas.IdAlbaran (+) = Albaranes.IdAlbaran
AND
Facturas.IdCliente = 325
En SQL-SERVER se puede utilizar una sintaxis parecida, en este caso no se utiliza los caracteres (+) sino los caracteres =* para el LEFT JOIN y *= para el RIGHT JOIN.
Hay 792 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Guía de Comandos Rápidos de Linux Linux es la principal expresión del software libre. Linux ofrece al usuario la posibilidad de tener control sobre el software que se ejecuta, ya que ofrece el acceso tota... [14/06/04] |
|
14.723 | ||
|
Visual Basic 6. Curso de introducción Tutorial de Visual Basic 6. El primer punto de este curso serán los controles y formularios que son los elementos gráficos que forman parte... [15/04/09] |
|
7.857 | ||
|
Introducción básica al protocolo HTTP Es el conjunto de reglas que siguen dos computadores para intercambiar información a través de una red como Internet. Un protocolo es una regla establecida para determina... [03/06/08] |
|
1.015 | ||
Publicar en
del.icio.us
digg
meneame