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

DBA dixit

Recursos en línea 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

01/10/2021 by DBA

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 © 2023 · Wellness Pro on Genesis Framework · WordPress · Acceder