
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:
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;
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;
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.
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.