Join

17
UNIVERSIDAD CATOLICA DE CUENCA SEDE SAN PABLO DE LA TRONCAL JOIN NOMBRE: CHICAIZA VERGARA PROFESOR: MSC. LUIS SANCHEZ

description

UNIR DOS TABLAS DE UNA BASE DE DATOS

Transcript of Join

UNIVERSIDAD CATOLICA DE CUENCA SEDE SAN PABLO DE LA TRONCAL JOIN

UNIVERSIDAD CATOLICA DE CUENCA SEDE SAN PABLO DE LA TRONCAL

JOIN

NOMBRE: CHICAIZA VERGARAPROFESOR: MSC. LUIS SANCHEZ

Recuperar informacin de dos o ms tablas (Joins)Para muchas de las consultas que los usuarios realizan sobre la data almacenada en nuestra base de datos es necesario extraer informacin de ms de una tabla, para ello es necesario emplear los JOINS.Es una operacin que produce un conjunto de resultados que incorporen filas y columnas de las tablas referidas en la consulta, esto lo hace basndose en columnas comunes a las tablas.EJECUCION DE UN JOINCuando se ejecutan los JOIN, SQL Server compara los valores de las columnas especificadas fila por fila entonces usa los resultados de la comparacin para combinar los valores que califican como nuevas filas.

SENTENCIA DE UN JOINSELECT FROM [INNER | LEFT|RIGHT|FULL [OUTER]] JOIN ON La lista de columnas puede incluir campos de diferentes tablas.JOIN especifica las tablas involucradas en la consulta.ON, establece la condicin de unin de las tablas, a travs de campos comunes.Cuando se implementa los JOIN, debe tener en cuenta las siguientes consideraciones:Especificar las condiciones del JOIN en base a Primary Key y a Foreign Key.Si una tabla tiene un Primary Key compuesta, se debe referenciar a la clave entera en la clusula ON del JOIN de tablas.Las columnas comunes a las tablas deben ser del mismo tipo de dato.Si dos o ms columnas de las diferentes tablas que participan en el JOIN, tienen el mismo nombre, deber de calificar dichas columnas usando el formatoNombreTabla.Nombre.Columna.Limitar en lo posible el nmero de tablas en un JOIN, a ms tablas, el SQL Server se tomar ms tiempo para resolver la consulta.

CONSIDERACIONES:La clusula LEFT OUTER JOIN nos permite observar todos los registros de la tabla que se referencia a la izquierda en una consulta, completa las filas con NULL en caso no exista un valor almacenado en la tabla de la derecha.La clusula RIGHT OUTER JOIN nos permite observar todos los registros de la tabla que se referencia a la derecha en una consulta, completa las filas con NULL en caso no exista un valor almacenado en la tabla de la izquierda.La clusula FULL OUTER JOIN nos muestra la combinacin de todos los registros de la tabla de la izquierda con los registros de la tabla de la derecha.EJEMPLOS:Mostrar los pedidos indicando el nmero de pedido, importe, nombre del cliente y el lmite de crditoSELECT Num_Pedido, Importe, Empresa, Limite_creditoFROM PEDIDOS INNER JOIN CLIENTESON CLIE = NUM_CLIEGOEJEMPLOSMuestra la lista de vendedores con especificacin de la ciudad y regin a la cual perteneceSELECT Nombre, Ciudad, ReginFROM REPVENTAS INNER JOIN OFICINASON OFICINA_REP = OFICINAGO

INNER JOINLa instruccinINNER JOIN. Devuelven nicamente aquellos registros/filas que tienen valores idnticos en los dos camposque se comparan para unir ambas tablas. Es decir aquellas que tienen elementos en las dos tablas, identificados stos por el campo de relacin.

INNER JOIN SINTAXISFROM Tabla1 [INNER] JOIN Tabla2 ON Condiciones_Vinculos_Tablas OUTER JOINOUTER JOIN. Como enseguida veremos, devuelven todos los valores de la tabla que hemos puesto a la derecha, los de la tabla que hemos puesto a la izquierda o los de ambas tablas segn el caso, devolviendo adems valores nulos en las columnas de las tablas que no tengan el valor existente en la otra tabla.Es decir, quenos permite seleccionar algunas filas de una tabla aunque stas no tengan correspondencia con las filas de la otra tablacon la que se combina. Ahora lo veremos mejor en cada caso concreto, ilustrndolo con un diagrama para una mejor comprensin.

SINTAXIS OUTER JOINFROM Tabla1 [LEFT/RIGHT/FULL] [OUTER] JOIN Tabla2 ON Condiciones_Vinculos_Tablas Variante LEFT JOIN

Se obtienen todas las filas de la tabla colocada a la izquierda, aunque no tengan correspondencia en la tabla de la derecha.

Variante RIGHT JOIN

Se obtienen todas las filas de la tabla de la derecha, aunque no tengan correspondencia en la tabla de la izquierda.

Variante FULL JOIN

Se obtienen todas las filas en ambas tablas, aunque no tenga correspondencia en la otra tabla. Es decir, todos los registros de A y de B aunque no haya correspondencia entre ellos, rellenando con nulos los campos que falten.

BIBLIOGRAFIAhttp://www.campusmvp.es/recursos/post/Fundamentos-de-SQL-Consultas-SELECT-multi-tabla-Tipos-de-JOIN.aspxhttp://download1634.mediafire.com/hnrnkjbzim3g/3ot9hd9vcvbt3b9/manual-sql-server-2000.rarhttp://www.resuelvetusproblemas.com/ejemplos-de-consultas-joins-para-sql/