3.201 cursos gratis
6.235.079 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > SQL > Consulta de combinación entre tablas (III)

SQL

Autor: Claudio
Curso:  4,49/5 4,49/5 (792 opiniones) |34144 alumnos|Fecha publicación: 10/05/2004
Capítulos del curso

Capítulo 13:

 Consulta de combinación entre tablas (III)

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.

Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 792 opiniones. Opina sobre este curso.

Descarga el PDF gratis

Cursos similares a SQL


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]
 4,48/5 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]
 4,94/5 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]
5/5 1.015  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail