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 (II)

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 12:

 Consulta de combinación entre tablas (II)

También se pueden enlazar varias cláusulas ON en una instrucción JOIN, utilizando la sintaxis siguiente:
SELECT campos FROM tabla1 INNER JOIN tabla2
ON (tb1.campo1 comp tb2.campo1 AND ON tb1.campo2 comp tb2.campo2)
OR ON (tb1.campo3 comp tb2.campo3)

También puede anidar instrucciones JOIN utilizando la siguiente sintaxis:
SELECT campos FROM tb1 INNER JOIN (tb2 INNER JOIN [( ]tb3
[INNER JOIN [( ]tablax [INNER JOIN ...)]
ON tb3.campo3 comp tbx.campox)]
ON tb2.campo2 comp tb3.campo3)
ON tb1.campo1 comp tb2.campo2

Un LEFT JOIN o un RIGHT JOIN puede anidarse dentro de un INNER JOIN, pero un INNER JOIN no puede anidarse dentro de un LEFT JOIN o un RIGHT JOIN.

Ejemplo:
SELECT DISTINCT
Sum(PrecioUnitario * Cantidad) AS Sales,
(Nombre + ' ' + Apellido) AS Name
FROM
Empleados
INNER JOIN(
Pedidos
INNER JOIN
DetallesPedidos

ON
Pedidos.IdPedido = DetallesPedidos.IdPedido)

ON
Empleados.IdEmpleado = Pedidos.IdEmpleado
GROUP BY
Nombre + ' ' + Apellido

(Crea dos combinaciones equivalentes: una entre las tablas Detalles de pedidos y Pedidos, y la otra entre las tablas Pedidos y Empleados. Esto es necesario ya que la tabla Empleados no contiene datos de ventas y la tabla Detalles de pedidos no contiene datos de los empleados. La consulta produce una lista de empleados y sus ventas totales.)

Si empleamos la cláusula INNER en la consulta se seleccionarán sólo aquellos registros de la tabla de la que hayamos escrito a la izquierda de INNER JOIN que contengan al menos un registro de la tabla que hayamos escrito a la derecha. Para solucionar esto tenemos dos cláusulas que sustituyen a la palabra clave INNER, estas cláusulas son LEFT y RIGHT. LEFT toma todos los registros de la tabla de la izquierda aunque no tengan ningún registro en la tabla de la izquierda. RIGHT realiza la misma operación pero al contrario, toma todos los registros de la tabla de la derecha aunque no tenga ningún registro en la tabla de la izquierda.

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
Funciones en C (segunda parte)
Sigue este curso de programación informática sobre Funciones en C en su parte complementaria. Aprende las variables de registro en relación con la unidad central de proce... [17/10/08]
5/5 1.820  
PHP y MySQL. Aplicaciones Web: HTML (cuarta parte)
Programación de aplicaciones Web con PHP y MySQL. Siguiendo con el estudio de las páginas Web HTML, ahora aprenderás a cerca de las pseudoclases. ... [02/12/08]
5/5 595  
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