Unión de subconsulta SQL con consulta externa

Union De Subconsulta Sql Con Consulta Externa



Cuando se trata de trabajar con bases de datos relacionales, debe dominar cómo manipular y combinar las consultas para realizar las tareas que desea. Es por eso que cada motor de base de datos relacional implementa su sabor del lenguaje SQL al intentar proporcionar características excepcionales, eficiencia y facilidad de uso para sus usuarios.

Una de las características más poderosas de SQL son las subconsultas. Las subconsultas son un conjunto de consultas anidadas dentro de una consulta más grande y compleja. Las subconsultas le permiten recuperar los datos o realizar operaciones más complejas como una sola entidad.







Podemos usar las subconsultas para filtrar, ordenar, agregar datos en varias tablas y más.



Sin embargo, otra característica que está oculta bajo las subconsultas SQL se conoce como uniones de subconsultas. Son similares a las subconsultas; en cambio, son uniones que le permiten usar las subconsultas dentro de una consulta externa para unir las tablas.



Si su cabeza está dando vueltas, no se preocupe porque las uniones de subconsultas pueden ser difíciles de dominar, especialmente al principio. Sin embargo, este tutorial intenta desglosar las uniones de subconsulta en pasos elementales sin dejar demasiado al azar.





Tenga en cuenta que asumimos que no es nuevo en SQL, SQL Joins, SQL Subqueries o similares. Sin embargo, si es así, consulte nuestros tutoriales sobre los temas para descubrir más.

Domine las uniones externas de SQL

Si desea comprender cómo trabajar con uniones de subconsultas, aprender a trabajar con uniones externas es un factor clave.



Si no está familiarizado, una combinación externa de SQL le permite obtener todas las filas de una tabla y las filas coincidentes de la segunda tabla. Es un poco más complejo que eso, incluyendo la unión externa izquierda, la unión externa derecha, la unión externa completa, etc.

En una combinación externa izquierda de SQL, la consulta devuelve todas las filas de la tabla de la izquierda y las filas coincidentes de la tabla de la derecha. La consulta incluye los valores NULL en las columnas resultantes si no hay filas coincidentes en la tabla de la derecha.

En el caso de una combinación externa derecha, la consulta devuelve todas las filas de la tabla de la derecha, pero solo las filas coincidentes de la tabla de la izquierda. De manera similar, la consulta incluye los valores NULL si no hay filas coincidentes en la tabla de la izquierda.

Finalmente, tenemos la unión externa completa. Esta combinación devuelve todas las filas de las tablas derecha e izquierda y los valores NULL de cualquier registro que no coincida.

Uniones de subconsulta SQL

Ahora que entendemos las subconsultas de SQL, hablemos de las uniones de subconsultas. Las uniones de subconsultas nos permiten usar las subconsultas dentro de una consulta externa para unir las tablas.

Si estás preguntando, ¿es eso? Sí, eso es todo lo que hacen las uniones de subconsulta.

Para demostrar esto mejor, tome el siguiente ejemplo de sintaxis que se muestra a continuación:

SELECCIONAR *
DESDE la tabla1
IZQUIERDA COMBINACIÓN EXTERNA (
SELECCIONE columna1, columna2
DESDE la tabla2
) como subconsulta
ON tabla1.columna3 = subconsulta.columna1;

 
En la sintaxis anterior, seleccionamos todas las columnas de la tabla uno usando una combinación externa izquierda para unirlas con una subconsulta. La función de la subconsulta es obtener las columnas definidas de la Tabla 2. Luego la unimos con la Tabla 1 en la condición de la columna 2 de la Tabla 1 y la columna 1 de la subconsulta.

Ejemplo práctico:

En teoría, parece menos intuitivo, pero tomemos un escenario del mundo real tomando la base de datos de Sakila.

Supongamos que queremos recuperar la lista de todas las películas de la base de datos y sus respectivos idiomas. Los idiomas de las películas se almacenan en la tabla de idiomas y los nombres de las películas se almacenan en la tabla de películas.

Sin embargo, la tabla de películas tiene una clave externa llamada columna 'language_id' de la tabla de idiomas. Por lo tanto, podemos usar una combinación de subconsulta con una combinación externa izquierda para unir las dos tablas, como se demuestra en la siguiente consulta:

SELECCIONE f.título, l.nombre AS idioma
DE la película f
IZQUIERDA COMBINACIÓN EXTERNA (
SELECCIONE language_id, nombre
DESDE el idioma
) como yo
ON f.idioma_id = l.idioma_id;

 
En la consulta de ejemplo anterior, seleccionamos la columna de título de la tabla de películas y la columna de nombre de la tabla de idiomas.

Luego usamos una subconsulta para seleccionar language_id y la columna de nombre de la tabla de idiomas. El siguiente paso es unirlo con la tabla de películas con la condición de que language_id de la tabla de películas sea igual a language_id de la tabla de idiomas.

Para asegurarnos de que todas las películas se incluyan en el resultado, debemos usar la combinación externa izquierda que consta de todos los resultados de la tabla de la izquierda que, en este caso, es la tabla de películas.

Un ejemplo de salida es el siguiente:


También podemos hacer lo mismo con una combinación externa derecha. La sintaxis es la siguiente:

SELECCIONAR *
DESDE la tabla1
UNIÓN EXTERNA DERECHA (
SELECCIONE columna1, columna2
DESDE la tabla2
) como subconsulta
ON tabla1.columna3 = subconsulta.columna1;

 
Esto se comporta de manera similar, pero incluye todos los registros de la tabla de la derecha, incluso si no hay registros coincidentes.

Cosas útiles que debe saber

Es bueno entender que aunque las combinaciones de subconsultas son increíblemente útiles y pueden optimizar su flujo de trabajo, utilícelas con precaución.

Por ejemplo, evite usar combinaciones de subconsulta con un conjunto de datos grande. Esto se debe a que pueden devolver registros extensos que pueden afectar el rendimiento de la base de datos.

Considere usar las herramientas de análisis de consultas antes de ejecutar cualquier combinación de subconsultas.

Conclusión

Este tutorial exploró los fundamentos del trabajo con subconsultas y uniones de subconsultas en SQL. Al final de este tutorial, ahora comprende cómo trabajar con combinaciones de subconsultas, por qué es posible que necesite usarlas y un ejemplo práctico de cómo pueden ayudarlo en su flujo de trabajo.