Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SQL Inner Join Keyword
SQL Inner Join Keyword
The INNER JOIN keyword returns rows when there is at least one match in both tables.
LastName
Hansen
Svendson
Pettersen
FirstName
Ola
Tove
Kari
Address
Timoteivn 10
Borgvn 23
Storgt 20
OrderNo
77895
44678
22456
24562
34764
P_Id
3
3
1
1
15
City
Sandnes
Sandnes
Stavanger
FirstName
Ola
Ola
Kari
Kari
OrderNo
22456
24562
77895
44678
The INNER JOIN keyword returns rows when there is at least one match in both tables. If
there are rows in "Persons" that do not have matches in "Orders", those rows will NOT be
listed.
Tablas de ejemplo
Todas las explicaciones que estn a continuacin usan las siguientes dos tablas para ilustrar
el efecto de diferentes clases de uniones JOIN.
Tabla Empleado
Apellido
IDDepartamento
Andrade
31
Jordn
33
Steinberg
33
Rbinson
34
Zolano
34
Gaspar
36
Tabla Departamento
NombreDepartamento
IDDepartamento
Ventas
31
Ingeniera
33
Produccin
34
Mercadeo
35
La tabla Empleado contiene los apellidos de los empleados junto al nmero del
departamento al que pertenecen, mientras que la tabla Departamento contiene el nombre
de los departamentos de la empresa.
Existen empleados que tienen asignado un nmero de departamento que no se encuentra en
la tabla Departamento (Gaspar). Igualmente, existen departamentos a los cuales no
pertenece ningn empleado (Mercadeo). Esto servir para presentar algunos ejemplos ms
adelante.
Combinacin interna (INNER JOIN)
Con esta operacin se calcula el producto cruzado de todos los registros; as cada registro
en la tabla A es combinado con cada registro de la tabla B; pero slo permanecen aquellos
registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Este es
el tipo de JOIN ms utilizado por lo que es considerado el tipo de combinacin
predeterminado.
SQL:2003 especifica dos formas diferentes para expresar estas combinaciones. La primera,
conocida como explcita usa la palabra JOIN, mientras que la segunda es implcita y usa ','
para separar las tablas a combinar en la sentencia FROM de la declaracin SELECT.
Entonces siempre se genera el producto cruzado del cual se seleccionan las combinaciones
que cumplan lo que indica la sentencia WHERE.
Es necesario tener especial cuidado cuando se combinan columnas con valores nulos
NULL ya que el valor nulo no se combina con otro valor o con otro nulo, excepto cuando
se le agregan predicados tales como IS NULL o IS NOT NULL.
Como ejemplo, la siguiente consulta toma todos los registros de la tabla Empleado y
encuentra todas las combinaciones en la tabla Departamento. La sentencia JOIN compara
los valores en la columna IDDepartamento en ambas tablas. Cuando no existe esta
correspondencia entre algunas combinaciones, stas no se muestran; es decir que si el
nmero de departamento de un empleado no coincide con los nmeros de departamento de
la tabla Departamento, no se mostrar el empleado con su respectivo departamento en la
tabla resultante.
Las dos consultas siguientes son similares, y se realizan de manera explicita (A) e implcita
(B).
A. Ejemplo de la sentencia INNER JOIN explcita:
SELECT Campos
FROM
empleado
INNER JOIN departamento
ON empleado.IDDepartamento = departamento.IDDepartamento
Resultados:
Empleado. Empleado.IDdep departamento.Nombre departamento.IDD
Apellido
artamento
Departamento
epartamento
Zolano
34
Produccin
34
Jordn
33
Ingeniera
33
Rbinson
34
Produccin
34
Steinberg
33
Ingeniera
33
Andrade
31
Ventas
31