SQL INNER JOIN: Para Vincular Varias Tablas

El comando SQL INNER JOIN, es un tipo muy común de uniones para vincular varias tablas. Este comando devuelve registros cuando hay al menos una fila en cada columna que coincide con la condición.

Una consulta con SQL INNER JOIN le permite básicamente usar una sola  declaración SELECT para extraer información de columna que de otro modo requeriría que escriba dos o más declaraciones SELECT .

Si obtenemos la misma información usando una sola declaración SELECT , en lugar de varias, habremos escrito una solución mejor y más limpia.

sql inner join

Sintaxis SQL INNER JOIN

Para utilizar la unión SQL inner join debe utilizar una consulta SQL con esta sintaxis:

SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.fk_id

La sintaxis anterior establece que los registros de las tablas table1 y table2 deben seleccionarse cuando los datos de la columna «id» de la tabla1 son iguales a los datos de la tabla fk_id columna 2.

La unión SQL inner join también se puede escribir de la siguiente manera:

SELECT *
FROM table1
INNER JOIN table2
WHERE table1.id = table2.fk_id
ORDER BY nombres de columna

La sintaxis con la condición WHERE es una forma alternativa de unirse, pero tiene la desventaja de ser menos fácil de leer si ya hay varias condiciones en el WHERE.

En la primera línea de nuestra sintaxis tenemos nuestra declaración SELECT donde especifica todas las columnas de las dos tablas participantes (tabla1 y tabla2) cuyos datos desea obtener en su conjunto de resultados. La instrucción SELECT va seguida de la palabra clave FROM.

En la tercera línea de nuestra sintaxis tenemos nuestra cláusula JOIN que es INNER join como es obvio. Puede escribir INNER JOIN o simplemente JOIN, ya que ambos están permitidos y realizan la misma tarea. A ambos lados de nuestra cláusula Join tenemos nuestras tablas, que son TABLE 1 y TABLE 2.

Seguido de nuestra cláusula de unión, tenemos nuestra condición de unión. Básicamente tenemos dos tipos de condiciones de unión que podemos usar una a la vez pero nunca juntas. Estas dos condiciones de unión son ON y USING. El uso de cada condición de unión depende de ciertos parámetros condicionales.

Y al final de la sintaxis tenemos nuestra cláusula WHERE y ORDER BY. 

Ejemplo de la unión sql inner join

Imagine una aplicación que tiene una tabla de usuario, así como una tabla de pedidos que contiene todas las informaciones realizada por los usuarios.

Tabla:usuario:

idnombrecorreo 
1Marichalchal4@example.com
2Luzluz45@example.com
3Paulvost142@example.com
4Rollandrolland@example.com

 

Tabla: Pedidos 

usuario_idFechafacttotal
12013-01-23A00103600.14
12013-02-14A00104124.00
22013-02-17A00105200.45
22013-02-21A00106348.35
52013-03-02A0010750.58

 

Para ver todos los pedidos asociados con los usuarios, se puede utilizar la siguiente consulta:

SELECT id, nombre, 
Fecha, fact, total
FROM usuario
INNER JOIN pedidos ON usuario.id = pedidos.usuario_id

Resultados:

idnombreFechafacttotal
1Marichal2013-01-23A00103600.14
1Marichal2013-02-14A00104124.00
2Luz2013-02-17A00105200.45
2Luz2013-02-21A00106348.35

 

El resultado de la consulta muestra la unión perfecta entre las 2 tablas. Los usuarios 3 y 4 no se muestran ya que no hay pedidos asociados con estos usuarios.

Advertencia: si los usuarios son eliminados, no veremos sus pedidos en la lista ya que en SQL INNER JOIN devuelve solo los resultados o la condición es verdadera en las 2 tablas.

Puntos importantes:

  • Todas las tablas deben estar en una relación con una clave externa.
  • Una columna de cada tabla debe contener los valores coincidentes.
  • Los tipos de datos de la columna correspondiente en cada tabla pueden ser iguales o diferentes.
  • El número de columnas de cada tabla puede ser igual o diferente.
  • Los nombres de las columnas correspondientes de cada tabla pueden ser iguales o diferentes.
  • La cantidad de registros en cada tabla puede ser igual o diferente.
  • Cada tabla puede tener valores distintos, valores duplicados o una combinación de ambos valores.

Deja un comentario