Saltar al contenido

INNER JOIN en SQL con EJEMPLOS

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.

Índice

    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

    1. Primero, especifique la tabla principal que aparece en la cláusula FROM (t1).
    2. 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,…).
    3. 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.