Вы находитесь на странице: 1из 3

INNER JOIN Qu es?

Jeisson Murillo Pabn

El INNER JOIN es un tipo de composicin de tablas. Los joins son utilizados para extraer informacin de dos o ms tablas. Por razones de performance se debe de limitar el nmero de tablas utilizados en un join, entre ms tablas se utilicen ms tiempo va a tardar SQL Server en procesar la informacin. Los join de preferencia deben de estar basados entre la llave primera y la llave fornea de las tablas.

Clases En el Lenguaje de Consultas Estructurado (SQL), hay tres tipos de JOIN: interno, externo, y cruzado. Join Inner Descripcin Ejemplo Use un inner join cuando quiera Se puede usar un inner join para ligar el ligar dos tablas que tienen valores nmero de cliente de la tabla de empleados en comn en una o ms con el nmero de empleado de la tabla de columnas. rentas, el resultado traera solamente los registros que cumplan con la condicin en las columnas ligadas de ambas tablas. Use un outer join cuando quiera Se puede usar un outer join para ligar la ligar dos tablas juntas, pero se tabla de clientes con la tabla de rentas, quiere que el resultado no solo para poder ver una lista de todos los contenga los registros que se clientes aunque nunca hayan rentado una cumplen con la condicin del join, pelcula. sino tambin cualquier registro que no cumpla de una tabla o de las dems. Use un cross join cuando se Se puede usar un cross join si se quiere una quieran ligar todos los registros manera rpida de alimentar una tabla con de una tabla con cada registro de informacin. Este tipo de joins tambin se otra tabla. les conoce como producto cartesiano. Use un self join cuando quiera Se puede usar un self join cuando una ligar una tabla a s misma. columna de una tabla debe referenciar una columna diferente en la misma tabla.

Outer

Cross

Self

Utilidad: La sentencia join en SQL permite combinar registros de dos o ms tablas en una base de datos relacional. Permite emparejar filas de distintas tablas de forma ms eficiente que con el producto cartesiano cuando una de las columnas de emparejamiento est indexada. Ya que en vez de hacer el producto cartesiano completo y luego seleccionar la filas que cumplen la condicin de emparejamiento, para cada fila de una de las tablas busca directamente en la otra tabla las filas que cumplen la condicin, con lo cual se emparejan slo las filas que luego aparecen en el resultado. Con esta operacin se calcula el producto cruzado de todos los registros; as cada registro en la tabla A es combinado con cada registro de la tabla B; pero slo permanecen aquellos registros en la tabla combinada 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.

Sintaxis:

Ejemplo: SELECT * FROM pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie tabla1 y tabla2 son especificaciones de tabla (nombre de tabla con alias o no, nombre de consulta guardada), de las tablas cuyos registros se van a combinar. Pueden ser las dos la misma tabla, en este caso es obligatorio definir al menos un alias de tabla. col1, col2 son las columnas de emparejamiento. Observar que dentro de la clusula ON los nombres de columna deben ser nombres cualificados (lleva delante el nombre de la tabla y un punto). Las columnas de emparejamiento deben contener la misma clase de datos, las dos de tipo texto, de tipo fecha etc... Los campos numricos deben ser de tipos similares. Por ejemplo, se puede combinar campos AutoNumrico y Long puesto que son tipos similares, sin embargo, no se puede combinar campos de tipo Simple y Doble. Adems las columnas no pueden ser de tipo Memo ni OLE. comp representa cualquier operador de comparacin ( =, <, >, <=, >=, o <> ) y se utiliza para establecer la condicin de emparejamiento. Se pueden definir varias condiciones de emparejamiento unidas por los operadores AND y OR poniendo cada condicin entre parntesis. Ejemplo: SELECT * FROM pedidos INNER JOIN productos ON (pedidos.fab = productos.idfab) AND (pedidos.producto = productos.idproducto) Se pueden combinar ms de dos tablas En este caso hay que sustituir en la sintaxis una tabla por un INNER JOIN completo. Por ejemplo: SELECT * FROM (pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie) INNER JOIN empleados ON pedidos.rep = empleados.numemp En vez de tabla1 hemos escrito un INNER JOIN completo, tambin podemos escribir: SELECT * FROM clientes INNER JOIN (pedidos INNER JOIN empleados ON pedidos.rep = empleados.numemp) ON pedidos.clie = clientes.numclie En este caso hemos sustituido tabla2 por un INNER JOIN completo.