• Saltar a la navegación principal
  • Saltar al contenido principal

DBA dixit

Recursos para el administrador y el desarrollador de bases de datos

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning
Usted está aquí: Inicio / SQL / Joins en SQL Server

Joins en SQL Server

JOIN es una cláusula que se usa en la instrucción SELECT que permite combinar dos tablas en un solo resultado, basándose en uno o más campos que comparten (campos llave). A diferencia de los operadores de conjuntos, las tablas en un Join pueden tener una estructura de campos diferentes, solo deben contar con uno o dos campos que compartan (llaves) para poder hacer la unión.

Dadas dos tablas cualesquiera, se pueden hacer 7 tipos de uniones (o joins) diferentes, atendiendo al resultado o a la combinación de dichas tablas. En general, se pueden resumir en los casos que continuación se muestran:

1.- Todos los registros de la primera tabla

SELECT campos
FROM primeraTabla A
LEFT JOIN segundaTabla B
ON A.llave = B.llave;


2.- Todos los registros de la segunda tabla

SELECT campos
FROM primeraTabla A
RIGHT JOIN segundaTabla B
ON A.llave = B.llave;


3.- Los registros de la primera tabla, excepto los que se encuentren en la segunda

SELECT campos
FROM primeraTabla A
LEFT JOIN segundaTabla B
ON A.llave = B.llave
WHERE B.llave IS NULL
;


4.- Los registros de la segunda tabla, excepto los que se encuentren en la primera

SELECT campos
FROM primeraTabla A
RIGHT JOIN segundaTabla B
ON A.llave = B.llave
WHERE B.llave IS NULL
;


5.- Los registros que se encuentren en ambas tablas, y solo en ambas

SELECT campos
FROM primeraTabla A
INNER JOIN segundaTabla B
ON A.llave = B.llave;


6.- Todos los registros de las dos tablas

SELECT campos
FROM primeraTabla A
FULL OUTER JOIN segundaTabla B
ON A.llave = B.llave;


7.- Los registros de las dos tablas, excepto los que se encuentren en ambas

SELECT campos
FROM primeraTabla A
FULL OUTER JOIN segundaTabla B
ON A.llave = B.llave
WHERE A.llave IS NULL OR B.llave IS NULL
;

Estos joins son los que se implementan en SQL Server, siendo en las demás bases de datos muy similares -si no es que iguales-, por lo que se deberá revisar la sintáxis propia de cada motor de bases de datos relacional.

En términos generales existen 4 tipos diferentes de join:

  1. Left join
  2. Right join
  3. Full outer join
  4. Inner join

Las 7 variantes expuestas al prinicipios no son más que alguna implementación de las 4 antes descritas.

La diferencia con los operadores de conjunto (UNION, INTERSECT y EXCEPT) es que en estos join no es necesario que las tablas que se quieren combinar tengan la misma estructura de campos; en los join se pueden extraer campos diferentes de las tablas a combinar, y el único requisito es que compartan una llave en común, es decir, una forma de unirlos o hacer que correspondan unos campos con otros.

Publicado en: Lo básico, SQL Etiquetado como: SQL Server

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning

Copyright © 2025 · Wellness Pro on Genesis Framework · WordPress · Acceder