Combinacion interna y externa

Para evitar la repetición de datos y ocupar menos espacio, se separa la información en varias tablas. Cada tabla almacena parte de la información que necesitamos registrar.

Cuando obtenemos información de más de una tabla decimos que hacemos un “join” (combinación).

Veamos un ejemplo:

 select * from nota
  join alumno
  on nota.codigo=alumno.codigo;

Resumiendo: si distribuimos la información en varias tablas evitamos la redundancia de datos y ocupamos menos espacio físico en el disco. Un join es una operación que relaciona dos o más tablas para obtener un resultado que incluya datos (campos y registros) de ambas; las tablas participantes se combinan según los campos comunes a ambas tablas.

Hay tres tipos de combinaciones, de las cuales trabajaremos con las primeras dos:

  1. combinaciones internas (inner join o join),
  2. combinaciones externas y
  3. combinaciones cruzadas.

Combinación interna (inner join)

Un join es una operación que relaciona dos o más tablas para obtener un resultado que incluya datos (campos y registros) de ambas; las tablas participantes se combinan según los campos comunes a ambas tablas.

También es posible emplear varias combinaciones en una consulta “select”, incluso puede combinarse una tabla consigo misma.

La combinación interna emplea “join”, que es la forma abreviada de “inner join”. Se emplea para obtener información de dos tablas y combinar dicha información en una salida.

La sintaxis básica es la siguiente:

 select CAMPOS
  from TABLA1
  join TABLA2
  on CONDICION_de_COMBINACION;

Entonces, si las tablas que combinamos tienen nombres de campos iguales, DEBE especificarse a qué tabla pertenece anteponiendo el nombre de la tabla al nombre del campo, separado por un punto (.).

Se puede incluir en la consulta join la cláusula “where” para restringir los registros que retorna el resultado; también “order by”, “distinct”, etc..

Se emplea este tipo de combinación para encontrar registros de la primera tabla que se correspondan con los registros de la otra, es decir, que cumplan la condición del “on”. Si un valor de la primera tabla no se encuentra en la segunda tabla, el registro no aparece.

Combinación externa izquierda (left join)

Vimos que una combinación interna (join) encuentra registros de la primera tabla que se correspondan con los registros de la segunda, es decir, que cumplan la condición del “on” y si un valor de la primera tabla no se encuentra en la segunda tabla, el registro no aparece.

Se emplea una combinación externa izquierda para mostrar todos los registros de la tabla de la izquierda. Si no encuentra coincidencia con la tabla de la derecha, el registro muestra los campos de la segunda tabla seteados a “null”.

Es importante la posición en que se colocan las tablas en un “left join”, la tabla de la izquierda es la que se usa para localizar registros en la tabla de la derecha.

Entonces, un “left join” se usa para hacer coincidir registros en una tabla (izquierda) con otra tabla (derecha); si un valor de la tabla de la izquierda no encuentra coincidencia en la tabla de la derecha, se genera una fila extra (una por cada valor no encontrado) con todos los campos correspondientes a la tabla derecha seteados a “null”. La sintaxis básica es la siguiente:

  select CAMPOS
  from TABLAIZQUIERDA
  left join TABLADERECHA
  on CONDICION;

Un “left join” puede tener clausula “where” que restringa el resultado de la consulta considerando solamente los registros que encuentran coincidencia en la tabla de la derecha.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: