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

  1. Seleccionando Columnas:

    • Comenzamos con SELECT ColumnA FROM Table1 para recuperar todas las entradas de ColumnA en Table1.
    • La siguiente parte, SELECT ColumnA FROM Table2, hace lo mismo para Table2.
  2. Combinando Resultados:

    • El operador UNION fusiona los conjuntos de resultados de ambas sentencias SELECT.
    • Ten en cuenta que, por defecto, UNION elimina los valores duplicados, por lo que si hubiera alguna superposición en los valores de ColumnA entre las dos tablas, solo aparecerían una vez en la salida final.
  3. Ordenando los Resultados:

    • La cláusula ORDER BY 1 ordena la salida final por la primera columna, que en este caso es ColumnA.

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!