En SQL, las JOIN se utilizan para unir las filas de dos o más tablas, basándose en una columna que se comparte entre ellas.
Hay cuatro tipos diferentes de combinaciones: INNER JOIN
, LEFT JOIN
, RIGHT JOIN
, y FULL OUTER JOIN
. En este artículo, discutiremos FULL OUTER JOIN
.
El FULL OUTER JOIN
(alias OUTER JOIN
) se usa para devolver todos los registros que tienen valores en la tabla izquierda o derecha.
Por ejemplo, un OUTER JOIN de una tabla de clientes y una tabla de pedidos puede devolver todos los clientes, incluidos los que no tienen ningún pedido, así como todos los pedidos. Los clientes que han realizado pedidos se unirán con sus pedidos utilizando su número de identificación de cliente.
Un FULL OUTER JOIN puede devolver una gran cantidad de datos, por lo que antes de usarla, considere si un método más conservador podría satisfacer sus necesidades.
Imagina que estás enseñando una clase de literatura. Tienes diez estudiantes y quieres que cada uno de ellos lea un libro diferente de una lista de novelas clásicas estadounidenses aprobadas previamente. Algunos estudiantes han elegido el libro que leerán, mientras que otros aún no lo han hecho.
Ha creado una tabla que enumera a los estudiantes junto con sus números de identificación de estudiante, y otra tabla que enumera los libros con su título, autor, ISBN y la identificación del estudiante que leerá el libro, si alguien lo ha elegido.
Tabla students
Tabla Books
Para hacer una combinación externa en nuestros datos de muestra, podríamos usar la siguiente consulta:
SELECT students.name, books.title
FROM students
FULL OUTER JOIN books ON students.student_id=books.student_id;
En este ejemplo, seleccionamos los nombres de la tabla students
y los títulos de los libros de la tabla books
. Los registros se comparan utilizando la columna student_id
en ambas tablas.
Los resultados se ven así:
Con el FULL OUTER JOIN, podemos ver a todos los estudiantes, incluidos aquellos que aún no han elegido un libro. También podemos ver todos los libros, incluidos los que aún no han sido elegidos.
En nuestro ejemplo, podría usar estos datos para ver quién todavía necesita decidir sobre un libro y qué libros todavía están disponibles para que ellos elijan.
El uso de FULL OUTER JOIN en SQL puede ayudarlo a obtener una vista completa de los datos de varias tablas relacionadas.
Sin embargo, tenga en cuenta que con un gran conjunto de datos, esta consulta puede devolver una cantidad de información difícil de manejar, ¡así que use este poder con prudencia!