Selección y combinación de columnas de dos tablas SQL
Cuando trabajas con bases de datos, es común encontrarse en situaciones donde necesitas recuperar datos de múltiples tablas. Un escenario como este surge cuando tienes dos tablas con una columna común. En esta entrada de blog, exploraremos cómo seleccionar una columna específica, ColumnA
, de dos tablas diferentes—Table1
y Table2
—y devolverla como un único conjunto de resultados.
El Problema
Supongamos que tienes dos tablas en tu base de datos:
-
Table1 contiene una columna llamada
ColumnA
con los valores:- a
- b
- c
-
Table2 también contiene una columna llamada
ColumnA
con los valores:- d
- e
- f
Tu objetivo es extraer todas las instancias de ColumnA
de ambas tablas en una única columna en el conjunto de resultados. Esto significa que deseas que la salida muestre:
a
b
c
d
e
f
La Solución
Para lograr esto, podemos usar una consulta SQL con el operador UNION
. El operador UNION
nos permite combinar los resultados de dos o más sentencias SELECT
en un único conjunto de resultados.
Ejemplo de Consulta SQL
Aquí está la consulta SQL que realiza esta tarea:
SELECT ColumnA FROM Table1
UNION
SELECT ColumnA FROM Table2
ORDER BY 1;
Desglose de la Consulta
-
Seleccionando Columnas:
- Comenzamos con
SELECT ColumnA FROM Table1
para recuperar todas las entradas deColumnA
enTable1
. - La siguiente parte,
SELECT ColumnA FROM Table2
, hace lo mismo paraTable2
.
- Comenzamos con
-
Combinando Resultados:
- El operador
UNION
fusiona los conjuntos de resultados de ambas sentenciasSELECT
. - Ten en cuenta que, por defecto,
UNION
elimina los valores duplicados, por lo que si hubiera alguna superposición en los valores deColumnA
entre las dos tablas, solo aparecerían una vez en la salida final.
- El operador
-
Ordenando los Resultados:
- La cláusula
ORDER BY 1
ordena la salida final por la primera columna, que en este caso esColumnA
.
- La cláusula
Cuándo Usar UNION ALL
Si estás seguro de que los valores en ColumnA
de Table1
y Table2
nunca se superpondrán, considera usar UNION ALL
en lugar de UNION
. Esta opción evita la carga de verificar duplicados y puede mejorar el rendimiento:
SELECT ColumnA FROM Table1
UNION ALL
SELECT ColumnA FROM Table2
ORDER BY 1;
Resumen
En resumen, combinar datos de múltiples tablas en SQL puede manejarse de manera eficiente utilizando el operador UNION
. Esta práctica no solo simplifica la recuperación de datos, sino que también hace que tus consultas de base de datos sean más robustas y flexibles.
¡Ahora puedes extraer y fusionar fácilmente columnas de diferentes tablas, mejorando tu capacidad para gestionar y analizar tus datos de manera efectiva!