JOINS en SQL Server: Tutorial con ejemplos

Podemos recuperar datos de más de una tabla usando la declaración JOIN. Existen principalmente 4 tipos diferentes de UNIONES en el servidor SQL. Aprenderemos todas las UNIONES en Servidor SQL con ejemplos:

  • UNIÓN INTERNA/unión simple
  • UNIÓN EXTERIOR IZQUIERDA/UNIÓN IZQUIERDA
  • UNIÓN EXTERIOR DERECHA/UNIÓN DERECHA
  • UNIÓN EXTERIOR COMPLETA

INNER JOIN

Este tipo de JOIN de SQL Server devuelve filas de todas las tablas en las que la condición de unión es verdadera. Tiene la siguiente sintaxis:

SELECT columns
FROM table_1 
INNER JOIN table_2
ON table_1.column = table_2.column;

Utilizaremos las siguientes dos tablas para demostrar esto:

Mesa de estudiantes:

INNER JOIN

Tabla de tarifas:

INNER JOIN

El siguiente comando demuestra una UNIÓN INTERNA en el servidor SQL con un ejemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
INNER JOIN Fee
ON Students.admission = Fee.admission

El comando devuelve lo siguiente:

INNER JOIN

Podemos informar a los estudiantes que han pagado su cuota. Usamos la columna con valores comunes en ambas tablas, que es la columna de admisión.

IZQUIERDA ÚNICA EXTERNA

Este tipo de combinación devolverá todas las filas de la tabla de la izquierda más los registros de la tabla de la derecha con valores coincidentes. Por ejemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
LEFT OUTER JOIN Fee
ON Students.admission = Fee.admission

El código devuelve lo siguiente:

IZQUIERDA ÚNICA EXTERNA

Los registros sin valores coincidentes se reemplazan con NULL en las columnas respectivas.

UNIÓN EXTERIOR DERECHA

Este tipo de combinación devuelve todas las filas de la tabla de la derecha y solo aquellas con valores coincidentes en la tabla de la izquierda. Por ejemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
RIGHT OUTER JOIN Fee
ON Students.admission = Fee.admission

La declaración para el servidor SQL OUTER JOINS devuelve lo siguiente:

UNIÓN EXTERIOR DERECHA

El motivo del resultado anterior es que todas las filas de la tabla Tarifas están disponibles en la tabla Estudiantes cuando coinciden en la columna de admisión.

UNIÓN EXTERIOR COMPLETA

Este tipo de combinación devuelve todas las filas de ambas tablas con valores NULL donde la condición JOIN no es verdadera. Por ejemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
FULL OUTER JOIN Fee
ON Students.admission = Fee.admission

El código devuelve el siguiente resultado para consultas FULL OUTER JOINS en SQL:

UNIÓN EXTERIOR COMPLETA