SQL: Uniones externas completas

Rodrigo Ricardo Publicado el 14 noviembre, 2020 3 minutos y 14 segundos de lectura

Introducción

Una consulta de combinación en SQL se utiliza para combinar filas de dos o más tablas. Hay varios tipos diferentes de combinaciones SQL, incluidas combinaciones internas, izquierdas, derechas y completas. El tipo de combinación que seleccione depende de los campos comunes entre las tablas que desea combinar. Una combinación externa completa devuelve todas las filas de ambas tablas. Una ventaja de usar una combinación externa completa para devolver todas las filas de ambas tablas es que la tabla combinada incluirá filas con datos nulos, por lo que no se omite nada. Esto se hará evidente con un ejemplo. Para este ejemplo, usaremos las siguientes dos tablas para desarrollar la consulta de combinación externa completa:

Estudiante

apellidonombre de pilacarné de identidadmayor
GamaJuan012Biología
HerreroJoe015Inglés
marrónJane018Biología
JohnsonJim210Inglés
JamesPedro202Biología
JonesPaul203Inglés

Registro

instructorNombre del cursoCourse_locationcarné de identidad
JonesBiología101Principal012
JonesBiología101Principal202
JonesQuímica101En línea018
MolineroInglés101Principal015
MolineroEscritura101En línea210

La tabla de estudiantes incluye columnas para el apellido, el nombre, la identificación del estudiante (que es un identificador único) y la especialidad del estudiante. La tabla de registro indica los instructores con cursos asignados, ubicaciones de cursos y estudiantes asignados según lo indicado por la identificación del estudiante.

Sintaxis de unión externa completa

La sintaxis SQL para la combinación externa completa aparece en el siguiente código:

SELECCIONE table.column-names 
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column;

Ahora, a partir de ahí, hagamos una combinación externa completa en las dos tablas usando la siguiente declaración SQL que aparece aquí:

SELECT student.id, student.major, registration.course_name 
FROM student
FULL OUTER JOIN registration
ON student.id = registration.id;

¿Ver la diferencia?

La siguiente tabla sería el resultado de la unión:

carné de identidadmayorNombre del curso
012biologíabiología101
015InglésInglés101
018biologíaquímica101
210Inglésescribiendo101
202biologíabiología101
203Inglés

La tabla resultante de la combinación externa completa muestra que Paul Jones aún no se ha registrado en ningún curso. Esta es información valiosa para el departamento de registro porque pueden comunicarse con Paul Jones para recordarle que se registre en los cursos.

La declaración de combinación externa completa permite condiciones como WHERE y ORDER BY. Para simplificar, la condición ORDER BY devolverá los resultados especificados, por ejemplo, en orden alfabético por apellido.

Hagamos otro ejemplo con las tablas anteriores usando una cláusula WHERE para ver qué resultados se devuelven de una combinación completa usando esta condición:

SELECCIONE student.id, student.major, registration.course_name 
FROM student
FULL OUTER JOIN registration
ON student.id = registration.id
DONDE student.major = "Biología";

Aquí aparecen los resultados de la siguiente tabla, que indica que todas las carreras de biología se han inscrito en los cursos.

carné de identidadmayorNombre del curso
012biologíabiología101
018biologíaquímica101
202biologíabiología101

Resumen de la lección

Bien, tomemos un momento o dos para revisar lo que hemos aprendido. La declaración de combinación externa completa es útil cuando desea que todas las filas se combinen de sus tablas. La tabla resultante puede tener datos faltantes, lo que podría indicar un área de preocupación que debe abordarse. La combinación externa completa devuelve todas las filas, que pueden ser un gran conjunto de datos dependiendo del número de filas en las tablas. El uso de una cláusula como ORDER BY o WHERE especifica criterios adicionales para la consulta, lo que puede ajustar el alcance de los resultados.

Explora más sobre este tema

Selecciona un tema y sigue aprendiendo...

Rodrigo Ricardo
Rodrigo Ricardo Editor y fundador