¿Qué son las sentencias INNER JOIN de SQL y cómo funciona?

En este tutorial, aprenderás a usar la cláusula o sentencia INNER JOIN de SQL Server para realizar consultar datos en varias tablas.


Introducción a SQL Server INNER JOIN

Los INNER JOIN son una de las combinaciones más utilizadas en SQL Server. La cláusula INNER JOIN te permite consultar datos de dos o más tablas relacionadas.

Cuando necesitas unir dos consultas SQL utilizamos la sentencia UNION o UNION ALL, la cual puedes consultar aquí.

Consulte las siguientes tablas de productos y categorías:

que es sql inner join

La siguiente declaración recupera la información del producto de la tabla production.products de la base de datos de ejemplo que estamos utilizando y puedes descargar aquí:

SELECT product_name, list_price,  category_id
FROM  production.products
ORDER BY  product_name DESC;

Cómo consultar dos o más tablas

La consulta solo devolvió una lista de números de identificación de categoría, no los nombres de categoría. Para incluir los nombres de categoría en el conjunto de resultados, use la cláusula INNER JOIN de la siguiente manera:

SELECT
    product_name,
    category_name,
    list_price
FROM
    production.products p
INNER JOIN production.categories c ON c.category_id = p.category_id
ORDER BY
    product_name DESC;

sql inner join

En esta consulta, la cláusula de INNER JOIN busca las coincidencias entre las filas de las tablas de productos y categorías. Si una fila o registro en la tabla de productos tiene el mismo valor en la columna category_id que una fila en la tabla de categorías, la consulta combina los valores de las columnas especificadas en la lista del SELECT en una nueva fila e incluye esa nueva fila en el conjunto de resultados.

Sintaxis de SQL Server INNER JOIN

A continuación se muestra la sintaxis de la cláusula INNER JOIN de SQL Server:

SELECT     select_list
FROM     T1
INNER JOIN T2 ON join_predicate;

En el ejemplo anterior de sintaxis, la consulta recuperó datos de las tablas T1 y T2:

  • Primero, especifique la tabla principal (T1) en la cláusula FROM
  • En segundo lugar, especifique la segunda tabla en la cláusula INNER JOIN (T2) y un predicado de unión, este predicado de unión es uno o más campos que se comparan en las dos tablas que se unirán. Solo las filas que hacen que el predicado de unión se evalúe como VERDADERO se incluyen en el conjunto de resultados.

La cláusula INNER JOIN compara cada fila de la tabla T1 con las filas de la tabla T2 para encontrar todos los pares de filas que satisfacen el predicado de unión. Si el predicado de unión se evalúa como VERDADERO, los valores de columna de las filas coincidentes de T1 y T2 se combinan en una nueva fila y se incluyen en el conjunto de resultados.

La siguiente tabla ilustra la unión interna de dos tablas T1 (1,2,3) y T2 (A, B, C). El resultado incluye filas: (2, A) y (3, B) ya que tienen los mismos patrones.

sql inner join ejemplo

Tenga en cuenta que la palabra clave INNER es opcional, puede omitirla como se muestra en la siguiente consulta:

SELECT
    select_list
FROM
    T1
JOIN T2 ON join_predicate;

Más ejemplos de combinación interna de SQL Server

Consulte las siguientes tablas de productos, categorías y marcas:

La siguiente declaración utiliza dos cláusulas INNER JOIN para consultar datos de las tres tablas:

SELECT
    product_name,
    category_name,
    brand_name,
    list_price
FROM
    production.products p
INNER JOIN production.categories c ON c.category_id = p.category_id
INNER JOIN production.brands b ON b.brand_id = p.brand_id
ORDER BY
    product_name DESC;

En este tutorial, ha aprendido a usar la cláusula INNER JOIN de SQL Server para consultar datos de varias tablas.

Artículos relacionados
¿Cómo borrar registros de una tabla de SQL Server con la instrucción DELETE?
¿Cómo borrar registros de una tabla de SQL Server con la instrucción DELETE?

En este tutorial de SQL Server, aprender&aacut

How to remove duplicate rows in SQL Server, MySql and Oracle?
How to remove duplicate rows in SQL Server, MySql and Oracle?

In this article we will see how to eliminate d

¿Para qué sirve la función ASCII de SQL Server y cómo utilizarla?
¿Para qué sirve la función ASCII de SQL Server y cómo utilizarla?

En este tutorial, aprenderá a usar la f

0 Comentarios
Enviame un comentario