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:
Tabla de tarifas:
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:
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:
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:
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: