En este tutorial, aprenderá a utilizar la cláusula INNER JOIN en SQL para relacionar la información de varias tablas en función de las condiciones de las llaves primarias y foráneas que la relacionan.
inner join sql que es?
INNER JOIN es una clausula de sql que valida la coincidencia del valor de una columna de una tabla «A» en la tabla «B», esto suele ir de la mano con la relación que existe entre llaves a fila en una tabla con cada fila en otras tablas y le permite consultar filas que contienen columnas de ambas tablas.
Para todos los ejemplos aqui utilizamos la base de datos de ejemplo que puedes ver aqui
Como hacer un inner join en sql con 3 tablas
SELECT
compos
FROM t1
INNER JOIN t2 ON join_condition1
INNER JOIN t3 ON join_condition2
…;
Como utilizar el comando INNER JOIN en SQL
- Primero, especifique la tabla principal que aparece en la cláusula FROM (t1).
- En segundo lugar, especifique las tablas que con la cual se relaciona la tabla principal, que aparece en la cláusula iner join (t2, t3,…).
- Debe indicar los criterios de la relación después de la palabra clave ON de la cláusula Iner join. La condición especifica la regla para hacer coincidir los registros entre las tablas entre la tablas.
Ejemplo 1 INNER JOIN en SQL
Para los fines te mostraremos como relacionar dos tablas producto y categoría del producto.
SELECT PRODUCTO
.*,CATEGORIA.Name AS CATEGORIA
FROM [AventureWorks].[SalesLT].[Product] AS PRODUCTO
INNER JOIN [AventureWorks].[SalesLT].ProductCategory AS CATEGORIA
ON
PRODUCTO.ProductCategoryID =CATEGORIA.ProductCategoryID
En este ejemplo utilizamos los alias para simplifica la visualización de los comando dentro de esta consulta. ademas podemos apreciar que la relación se realiza por el campo «ProductCategoryID» el cual debe coincidir en ambas tablas para poder visualizar los registros.
INNER JOIN con Group by ejemplo
Este ejemplo muestra como utilizar el group by en conjunto con el innerjoin esto puede combinar las funciones MAX, MIN, COUNT, AVG ETC. Todo dependerá de la situación para los fines de este ejemplo solo requerimos contar la cantidad de artículos por categoría.
Ver sintaxis
SELECT
CATEGORIA.Name AS CATEGORIA, COUNT(*)
FROM [AventureWorks].[SalesLT].[Product] AS PRODUCTO
JOIN [AventureWorks].[SalesLT].ProductCategory AS CATEGORIA
ON
PRODUCTO.ProductCategoryID =CATEGORIA.ProductCategoryID
GROUP BY CATEGORIA.Name
Clausula WHERE LIKE con INNER JOIN
Este ejemplo muestra como utilizar como combinar un inner join con la clausula WHERE para filtrar valores muy específicos dentro de la relación creada entre las tablas.
Ver sintaxis
SELECT
CATEGORIA.Name AS CATEGORIA, COUNT(*)
FROM [AventureWorks].[SalesLT].[Product] AS PRODUCTO
JOIN [AventureWorks].[SalesLT].ProductCategory AS CATEGORIA
ON
PRODUCTO.ProductCategoryID =CATEGORIA.ProductCategoryID WHERE CATEGORIA.Name not like '%Mountain Bikes%'
GROUP BY CATEGORIA.Name
Para este caso el motor de base de datos primero ejecutara el comando inner join y luego filtrara la información por el parámetro utilizado en la clausula where ademas ver ejemplo de like.
En este tutorial aprendió a utilizar el ineer join combinado con las Group by y Where pero tambien es posible utilizar order by y having con la clausula ineer join.