Está en la página 1de 4

Universidad Mayor de San Andrs Facultad de Ciencias Puras y Naturales Carrera de Informtica

JOINS en SQL Server 2008


En esta ocasin 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 diseada 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 Andrs Facultad de Ciencias Puras y Naturales Carrera de Informtica

1. Inner Join Con esta operacin 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 ms utilizado por lo que es considerado el tipo de combinacin 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 Andrs Facultad de Ciencias Puras y Naturales Carrera de Informtica

2. Left Join El resultado de esta operacin 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 Andrs Facultad de Ciencias Puras y Naturales Carrera de Informtica

3. Right Join Esta operacin es inversa a la anterior; el resultado de esta operacin 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

También podría gustarte