Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

jueves, 16 de diciembre de 2010

SQL y el JOIN



                        






En el manejo del SQL el empleo del JOIN es muy importante para realizar búsquedas en la base de datos y sobretodo para comprobar la integridad de la data.
Existen tres tipos de JOIN: INNER JOIN, LEFT JOIN, RIGHT JOIN.
Vamos a ver con un ejemplo como funcionan estos JOIN.

Supongamos que tenemos dos bases de datos:

La base de datos EMPLEADOS que contiene la siguiente información.
Clave = Id, Nacionalidad

Id. 5886825
Nombre= Pedro Perez
Nacionalidad = USA

Id. 66677889
Nombre = Juan Rodríguez
Nacionalidad = MEX

La base de Datos SUELDOS que contiene la siguiente información:
Clave = ID, NACIONALIDAD, DEPARTAMENTO

Id. 5886825
Nacionalidad = USA
Sueldo = 5000,00
Departamento = Contabilidad.

Id. 444333221
Nacionalidad = BOL
Sueldo = 8000,00
Departamento = Finanzas


En este momento Juan Rodríguez no ha sido asignado a ningún departamento.

La denominación Archivo1 se lo asignamos a la Base de Datos  EMPLEADOS
La denominación Archivo2 se lo asignamos a la base de Datos SUELDOS


Vamos a ver cual es el resultado de la consulta cuando trabajamos con INNER JOIN:


SELECT Archivo1.ID, Archivo2.ID, Archivo1.NOMBRE, Archivo2.SUELDO INNER JOIN SUELDOS Archivo2 ON  Archivo1.ID = Archivo2.ID and Archivo1.NACIONALIDAD = Archivo2.NACIONALIDAD.

El resultado de la búsqueda es:

5.886.825, 5.886.825, Pedro Perez. 5000

Esto corresponde en la imagen al área de color amarillo de la figura, donde están los empleados que se encuentran en ambas bases de datos.


Vamos a ver cual es el resultado de la consulta cuando trabajamos con LEFT JOIN:

SELECT Archivo1.ID, Archivo2.ID, Archivo1.NOMBRE, Archivo2.SUELDO LEFT JOIN SUELDOS Archivo2 ON  Archivo1.ID = Archivo2.ID and Archivo1.NACIONALIDAD = Archivo2.NACIONALIDAD.

66.677.889, NULL, Juan Rodríguez. NULL

Esto corresponde en la imagen al área de color azul de la figura, donde están los empleados que se encuentran SOLO en la base de datos: EMPLEADOS.


Vamos a ver cual es el resultado de la consulta cuando trabajamos con RIGHT JOIN:

SELECT Archivo1.ID, Archivo2.ID, Archivo1.NOMBRE, Archivo2.SUELDO RIGHT JOIN SUELDOS Archivo2 ON  Archivo1.ID = Archivo2.ID and Archivo1.NACIONALIDAD = Archivo2.NACIONALIDAD.

NULL, 444333221, NULL, 8000

Esto corresponde en la imagen al área de color verde de la figura, donde están los empleados que se encuentran SOLO en la base de datos: SUELDOS. Este último resultado nos está señalando que no hay integridad en la Base de Datos y debemos revisar que está ocurriendo.



Autor: Ing. Liliana Suárez.


Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.



No hay comentarios: