Saltar al contenido

la cláusula INNER JOIN de SQL

En este artículo, te explicaremos de manera sencilla y accesible qué es la cláusula INNER JOIN en SQL y cómo puedes utilizarla en tus consultas de SQL para obtener la información que necesitas de manera eficiente. esta la puedes usar en mysql, postgresql , SQL Server o en cualquier otro motor de base de datos que utilices.

En este artículo encontrarás información valiosa y ejemplos prácticos sobre cómo utilizar la cláusula INNER JOIN en combinación con otras cláusulas como WHERE, GROUP BY, ORDER BY y UPDATE. Aprenderás cómo unir datos de diferentes tablas, filtrar y ordenar información relevante y actualizar datos en función de los valores de otras tablas.

Índice

    Como funciona el INNER JOIN?

    La cláusula 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 northwind, ferreteria o farmacia que puedes utilizar.

    Sintaxis como usar

    SELECT * 
    FROM tabla1  a
    INNER JOIN tabla2 b 
    ON a.columna_comun = b.columna_comun;
    • En este ejemplo, «tabla1» y «tabla2» son los nombres de las tablas que queremos unir, y «columna_comun» es la columna en la que se basará la unión.
    • El operador ON indica que queremos unir las tablas en función de esta columna.

    Es importante destacar que la cláusula INNER JOIN solo mostrará los registros que se encuentran en ambas tablas. Es decir, si hay registros en una de las tablas que no tienen una coincidencia en la otra tabla, no se mostrarán en el resultado final.

    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

    Explicacion

    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.

    Cláusula Group by ejemplo

    La cláusula JOIN en SQL nos permite combinar datos de dos o más tablas basándonos en una columna común. A menudo, necesitamos realizar agregaciones o resúmenes de los datos combinados. Para ello, podemos utilizar la cláusula GROUP BY junto con INNER JOIN.

    La sintaxis básica para combinar con GROUP BY es la siguiente:

    SELECT columna1, columna2, ..., FUNCION_DE_AGGREGACION(columna) 
    FROM table1 inner join table2 ON table1.columna_comun = table2.columna_comun
    GROUP BY columna1, columna2, ...;

    Explicacion

    • En este ejemplo, la cláusula INNER JOIN combina los datos de la table1 y la table2 en función de la columna común «columna_comun».
    • La cláusula GROUP BY agrupa los datos en función de las columnas seleccionadas.

    Por ejemplo, si queremos obtener el número de compras realizadas por cliente, podríamos:

    SELECT clientes.nombre, COUNT(compras.id) 
    FROM clientes 
    INNER JOIN compras 
    ON clientes.id = compras.cliente_id
    GROUP BY clientes.nombre;

    En este ejemplo, estamos seleccionando el nombre de los clientes y el número de compras realizadas por cada uno. INNER JOIN combina los datos de las tablas «clientes» y «compras» en función de la columna «cliente_id». La cláusula GROUP BY agrupa los datos por el nombre del cliente y cuenta el número de compras realizadas por cada uno.

    Usando la cláusula WHERE

    Cuando combinamos dos o más tablas, a menudo necesitamos aplicar una o más condiciones para filtrar los datos que queremos obtener. Para ello, podemos utilizar la cláusula WHERE junto con la cláusula INNER JOIN.

    La sintaxis básica para combinar sql INNER JOIN con WHERE es la siguiente:

    SELECT columnas 
    FROM tabla1 
    INNER JOIN tabla2 
    ON 
    tabla1.columna_comun = tabla2.columna_comun 
    WHERE condicion;

    Explicacion

    • En este ejemplo, la cláusula INNER JOIN combina los datos de la tabla1 y la tabla2 en función de la columna común «columna_comun».
    • La cláusula WHERE, por su parte, filtra los datos en función de una condición específica.

    Por ejemplo, si queremos obtener una lista de todos los productos que han sido comprados por un cliente en particular, podríamos utilizar INNER JOIN y WHERE de la siguiente manera:

    SELECT productos.nombre, compras.fecha
    FROM productos
    INNER JOIN compras ON productos.id = compras.producto_id 
    WHERE compras.cliente_id = 123;

    En este ejemplo, estamos seleccionando los nombres de los productos y las fechas en que fueron comprados. INNER JOIN combina los datos de las tablas «productos» y «compras» en función de la columna «producto_id». La cláusula WHERE filtra los datos y muestra solo las compras realizadas por el cliente con el ID 123.

    Como ordenar los resultados ?

    A menudo, necesitamos ordenar los datos combinados. Para ello, podemos utilizar la cláusula ORDER BY junto con INNER JOIN.

    La sintaxis básica con ORDER BY es la siguiente:

    SELECT columnas 
    FROM tabla1 INNER JOIN tabla2 
    ON tabla1.columna_comun = tabla2.columna_comun 
    ORDER BY columna1 [ASC|DESC];

    Explicacion

    • En este ejemplo, la cláusula INNER JOIN combina los datos de la tabla1 y la tabla2 en función de la columna común «columna_comun».
    • La cláusula ORDER BY ordena los datos en función de la columna seleccionada y de manera ascendente o descendente.

    Por ejemplo, si queremos obtener una lista de todos los productos y ordenarlos por precio de forma descendente, podríamos utilizar ORDER BY de la siguiente manera:

    SELECT productos.nombre, productos.precio 
    FROM productos
    INNER JOIN precios ON productos.id = precios.producto_id 
    ORDER BY precios.precio DESC;

    En este ejemplo, estamos seleccionando los nombres y precios de los productos. INNER JOIN combina los datos de las tablas «productos» y «precios» en función de la columna «producto_id». La cláusula ORDER BY ordena los datos por el precio de manera descendente.

    Actualizando registros

    Al usar INNER JOIN en combinación con la cláusula UPDATE para actualizar los datos de una tabla en función de los datos de otra tabla.

    La sintaxis básica para combinar INNER JOIN con UPDATE es la siguiente:

    UPDATE tabla1  
    SET tabla1.columna1 = valor1, tabla1.columna2 = valor2, ... 
    FROM tabla1 
    INNER JOIN tabla2 
    ON tabla1.columna_comun = tabla2.columna_comun 
    WHERE condición;

    Cláusula CROSS JOIN

    Supongamos que tenemos dos tablas: «usuarios» y «productos». La tabla «usuarios» tiene información sobre nuestros clientes, como su nombre y dirección, mientras que la tabla «productos» tiene información sobre los productos que ofrecemos, como su nombre y precio.

    Para realizar un CROSS JOIN entre estas dos tablas, simplemente escribimos una consulta SQL que une las dos tablas sin ninguna condición de unión específica. La consulta sería algo como esto:

    SELECT *
    FROM usuarios
    CROSS JOIN productos;

    Explicacion

    • Esta consulta devuelve todas las combinaciones posibles de filas de las tablas «usuarios» y «productos», lo que significa que cada fila de la tabla «usuarios» se combina con cada fila de la tabla «productos».
    • El resultado final será una tabla que contiene todas las posibles combinaciones de filas de ambas tablas.

    Por ejemplo, si la tabla «usuarios» tiene 3 filas y la tabla «productos» tiene 4 filas, la consulta produciría 12 filas en la tabla resultante. Cada fila de la tabla «usuarios» se combinaría con cada fila de la tabla «productos», lo que resultaría en una tabla final con todas las posibles combinaciones de filas.

    Este tipo de consulta puede ser útil en casos donde se requiere una combinación completa de filas de dos tablas, pero en general no es comúnmente utilizado ya que puede generar una gran cantidad de resultados y consumir más recursos del sistema que un INNER JOIN.

    Resumen

    ¡No pierdas la oportunidad de mejorar tus habilidades en SQL! Si te encuentras aprendiendo sobre la cláusula INNER JOIN y cómo utilizarla para combinar y manipular datos en diferentes tablas de bases de datos, entonces no puedes perderte nuestro último artículo.

    No dejes pasar la oportunidad de mejorar tus habilidades en SQL y llevar tus conocimientos al siguiente nivel. ¡Lee nuestro artículo sobre la cláusula INNER JOIN y comienza a aplicar lo aprendido en tus proyectos de bases de datos hoy mismo!

    Hasta la proxima :D!!