sql join

Páginas: 8 (1912 palabras) Publicado: 5 de julio de 2013
amentTodas las explicaciones que están a continuación utilizan las siguientes dos tablas para ilustrar el efecto de diferentes clases de uniones JOIN.
Tabla Empleado
Apellido
IDDepartamento
Andrade
31
Jordán
33
Steinberg
33
Róbinson
34
Solano
34
Gaspar
36

Tabla Departamento
NombreDepartamento
IDDepartamento
Ventas
31
Ingeniería
33
Producción
34
Mercadeo
35


Latabla Empleado contiene a los empleados con el número del departamento al que pertenecen; mientras que la tabla Departamento, contiene el nombre de los departamentos de la empresa, se puede notar que existe un empleado que tiene asignado un número de departamento que no se encuentra en la tabla Departamento (Gaspar), igualmente, en la tabla Departamento existe un departamento al cual no perteneceempleado alguno (Mercadeo). Esto servirá para presentar algunos ejemplos más adelante.
Combinación interna (INNER JOIN) [editar]
Con esta operación 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 sólo permanecen aquellos registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Estees el tipo de JOIN más utilizado por lo que es considerado el tipo de combinación predeterminado.
SQL:2003 especifica dos formas diferentes para expresar estas combinaciones. La primera, conocida como explícita usa la palabra JOIN, mientras que la segunda es implícita y usa ',' para separar las tablas a combinar en la sentencia FROM de la declaración SELECT. Entonces siempre se genera el productocruzado 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 tablaEmpleado 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 número de departamento de un empleado no coincide con los números de departamento de la tabla Departamento, no se mostrará el empleado consu respectivo departamento en la tabla resultante.
Las dos consultas siguientes son similares, y se realizan de manera explicita (A) e implícita (B).
A. Ejemplo de la sentencia INNER JOIN explícita:
SELECT *
FROM empleado
INNER JOIN departamento
ON empleado.IDdepartamento = departamento.IDdepartamento
B. Ejemplo de la sentencia INNER JOIN implícita:
SELECT *
FROMempleado, departamento
WHERE empleado.IDdepartamento = departamento.IDDepartamento
Resultados:
Empleado.Apellido
Empleado.IDdepartamento
departamento.NombreDepartamento
departamento.IDDepartamento
Solano
34
Producción
34
Jordán
33
Ingeniería
33
Róbinson
34
Producción
34
Steinberg
33
Ingeniería
33
Andrade
31
Ventas
31
El empleado Gaspar y el departamento de Mercadeo no sonpresentados en los resultados ya que ninguno de éstos tiene registros correspondientes en la otra tabla. No existe un departamento con número 36 ni existe un empleado con número de departamento 35.
Natural (Natural join) [editar]
Es una especialización de la combinación de equivalencia, anteriormente mencionada. En este caso se comparan todas las columnas que tengan el mismo nombre en ambastablas. La tabla resultante contiene sólo una columna por cada par de columnas con el mismo nombre.
E. Ejemplo de combinación natural:
SELECT *
FROM empleado NATURAL JOIN departamento
El resultado es un poco diferente al del ejemplo D, ya que esta vez la columna IDDepartamento se muestra sola una vez en la tabla resultante.
Empleado.Apellido
IDDepartamento
Departamento.NombreDepartamento...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Explicación de join sql
  • SQL NATURAL JOIN
  • join me
  • join
  • joiner
  • join
  • Que es sql
  • que es sql

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS