INNER JOIN de SQL, se usa para combinar consultas de dos o más tablas a la vez en función de una columna que tiene relación entre las tablas.

Para este ejemplo, vamos a utilizar la base de datos ‘world’ de MySQL.

En la tabla ‘city’ tenemos los siguientes campos:

inner join sql

En la tabla ‘country’ tenemos los siguientes campos:

joins en SQL

Consulta INNER JOIN SQL

Para practicar, vamos a realizar el siguiente ejercicio. Se quiere Conseguir, en una sola consulta, el nombre de la ciudad (city.Name) y el nombre del país al que corresponden (country.Name).

Para hacer esto posible, necesitamos una relación entre las dos tablas, una forma de que se relacionen los registros de las dos tablas y que nos devuelva de cada ciudad, el país al que pertenecen.

La tabla ‘city’ tiene información sobre las ciudades, y en cada fila tiene el nombre de una ciudad y el código del país al que pertenece. La tabla ‘paises’ tiene información sobre los países, y en cada fila, tiene el nombre del país y también el código correspondiente.

Entonces, la clave para relacionar ambas tablas, está en el campo ‘Code’.


Esta sería una posible solución:

SELECT city.Name AS 'Ciudad', country.Name AS "País"
FROM city
INNER JOIN country ON 
city.CountryCode = country.Code
ORDER BY country.Name;
uniones con sql

La consulta parece muy compleja, pero realmente no lo es.

La consulta comienza seleccionando dos columnas de la base de datos: city.Name y country.Name. Estas columnas se renombran como ‘Ciudad’ y ‘País’ respectivamente, para que el resultado sea más claro y legible.

Para que no se nos devuelva un error en la consulta, hay que especificar a qué campo de cada tabla nos referimos en todo momento. Por eso pongo cosas como ‘city.Name’ o ‘country.Name’, que aunque se llaman igual, son campos diferentes de cada tabla.

A continuación, se indica que los datos se obtendrán de la tabla ‘city’. La cláusula ‘FROM city’ especifica que se utilizará la tabla ‘city’ como la tabla de datos principal (hay que elegir una de las dos).

Luego, se aplica una combinación de tipo INNER JOIN entre las tablas ‘city’ y ‘country’ utilizando la siguiente condición: ‘city.CountryCode = country.Code.’ Esta condición indica que se deben relacionar los datos del campo ‘CountryCode’ de ‘city’ (que lleva el código de cada país), con el campo ‘Code’ de la tabla ‘country’, que también lleva el código de país.

En otras palabras, se vincularán las ciudades con sus países correspondientes basándose en el código del país.

Finalmente, para presentar el resultado de manera ordenada, se usa la cláusula ‘ORDER BY country.Name.’ Esto organiza el resultado en orden alfabético ascendente según el nombre del país, lo que significa que las ciudades y sus países estarán agrupados por país en orden alfabético.

Gracias a INNER JOIN, podemos usar libremente campos de las dos tablas en la misma consulta, como si solo hubiese una tabla.

No te pierdas nada del curso Máster en SQL.


Una respuesta a «INNER JOIN SQL con ejemplos»

  1. Las explicaciones son tan claras que hasta n principiante descendiente de cabernicola las entiende!
    Gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Trending