You are on page 1of 4

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática

JOINS en SQL Server 2008
En esta ocasión daremos una breve explicacion sobre lo que son los JOINS en SQL Server, daremos cabida a tres clases de JOINS: - Inner Join - Left Join - Right Join Para dicho efecto, utilizaremos la siguiente base de datos diseñada para un supermercado, dicha base de datos esta compuesta por 9 tablas: - Empresa - Contacto - Compra - Detalle_Compra - Producto - Compra - Empleado - Venta - Cliente A continuacion presento el diagrama de la base de datos:

Jorge Marcelo Cupi Veliz 8311038 LP

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática

1. Inner Join Con esta operación se calcula el producto cruzado de todos los registros; así cada registro en la tabla X es combinado con cada registro de la tabla Y; Sin embargo, solo permanecen aquellos registros en la tabla resultado que satisfacen las condiciones que se especifiquen. Este es el tipo de JOIN más utilizado por lo que es considerado el tipo de combinación predeterminado. 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.

Debajo vemos por separado la consulta de datos de las tablas CARGO y EMPLEADO:

El resultado del Inner Join vendria a ser:

Jorge Marcelo Cupi Veliz 8311038 LP

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática

2. Left Join El resultado de esta operación siempre contiene todos los registros de la tabla de la izquierda (la primera tabla que se menciona en la consulta), aun cuando no exista un registro correspondiente en la tabla de la derecha, para uno de la izquierda. La sentencia LEFT JOIN retorna la pareja de todos los valores de la tabla izquierda con los valores de la tabla de la derecha correspondientes, o retorna un valor nulo NULL en caso de no correspondencia. A diferencia del ejemplo anterior en el que solo desplegamos como resultado los empleados que SI tenian un cargo, veremos que con el LEFT JOIN, veremos a TODOS los empleados, sin interesar si estos tienen o no un cargo.

Jorge Marcelo Cupi Veliz 8311038 LP

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática

3. Right Join Esta operación es inversa a la anterior; el resultado de esta operación siempre contiene todos los registros de la tabla de la derecha (la segunda tabla que se menciona en la consulta), aun cuando no exista un registro correspondiente en la tabla de la izquierda, para uno de la derecha. La sentencia RIGHT JOIN retorna la pareja de todos los valores de la tabla derecha con los valores de la tabla de la izquierda correspondientes, o retorna un valor nulo NULL en caso de no correspondencia. En el ejemplo anterior veiamos a TODOS los Empleados, tengan o no un cargo asignado, ahora con el uso del RIGHT JOIN veremos a todos los CARGOS, tengan o no EMPLEADOS asignados, solo cambiamos la palabra LEFT por RIGHT en el JOIN que realizamos:

Jorge Marcelo Cupi Veliz 8311038 LP