Contenido del curso

Cómo fusionar tablas con UNION en SQL

Resumen

Si trabajas con SQL y necesitas combinar información de dos tablas distintas en un solo resultado, el operador UNION es una de las herramientas más prácticas y sencillas que vas a encontrar. A diferencia de los joins, que cruzan datos por columnas, UNION apila registros y te permite crear nuevas vistas fusionadas que responden a una sola lógica de negocio.

¿Qué hace el operador UNION en SQL?

El operador UNION fusiona los resultados de dos consultas en una sola tabla, siempre que ambas tengan el mismo número de columnas y tipos de datos compatibles.

En el ejemplo de la clase trabajamos con dos tablas: customer, que tiene 601 registros de clientes, y staff, que solo tiene 2 registros de empleados. La idea es unirlas para ver en una sola lista quién es cliente y quién empleado.

¿Qué es UNION en SQL? Es un operador que combina los resultados de dos o más consultas SELECT en una sola tabla, apilando filas una debajo de otra. Ambas consultas deben tener el mismo número de columnas.

¿Cómo preparar las tablas antes de unirlas?

Antes de fusionar, necesitas que ambas consultas devuelvan exactamente las mismas columnas. Aquí entra una técnica muy útil: agregar una columna constante con alias para etiquetar el origen de cada registro [0:55].

La sintaxis luce así:

sql SELECT first_name, last_name, 'cliente' AS tipo FROM customer;

Con esto, cada uno de los 601 registros de la tabla customer recibe la etiqueta cliente en una nueva columna llamada tipo. Después repites la operación con staff, cambiando la etiqueta a empleado:

sql SELECT first_name, last_name, 'empleado' AS tipo FROM staff;

Ahora ambas consultas devuelven tres columnas idénticas en estructura: first_name, last_name y tipo. Ya están listas para fusionarse.

¿Por qué usar un alias con AS?

El alias con AS te permite renombrar columnas o asignar nombres a valores constantes. En este caso, convierte el texto 'cliente' en una columna llamada tipo, lo que hace el resultado mucho más legible cuando tengas la tabla unificada.

¿Cómo escribir una consulta UNION paso a paso?

Una vez que las dos consultas devuelven la misma estructura, solo agregas la palabra UNION entre ellas:

sql SELECT first_name, last_name, 'cliente' AS tipo FROM customer UNION SELECT first_name, last_name, 'empleado' AS tipo FROM staff ORDER BY tipo ASC;

Al ejecutar esta consulta obtienes 602 registros: los 601 clientes más los 2 empleados, todos en una sola tabla con la columna tipo indicando a qué grupo pertenece cada persona [2:35].

¿Cuál es la diferencia entre UNION y JOIN? JOIN combina columnas de dos tablas relacionándolas por una llave común, mientras que UNION apila filas de dos consultas con la misma estructura. JOIN ensancha la tabla; UNION la alarga.

¿Cómo ordenar el resultado con ORDER BY?

El ORDER BY se aplica al final, después del UNION, y afecta a toda la tabla resultante. Puedes ordenar por cualquiera de las columnas disponibles.

  • Ordenar por last_name ASC te devuelve los nombres en orden alfabético, empezando por la A.
  • Ordenar por tipo ASC coloca primero a los cliente y al final a los empleado, simplemente por orden alfabético.
  • El orden ascendente (ASC) es el predeterminado, pero puedes ser explícito para que la consulta se lea mejor.

Esta flexibilidad es lo que vuelve a UNION tan útil para reportes rápidos: con una sola sentencia obtienes una vista limpia y ordenada de dos fuentes distintas.

¿Puedo usar ORDER BY con UNION? Sí, pero solo una vez y al final de toda la consulta. El orden se aplica sobre el resultado fusionado, no sobre cada SELECT por separado.

¿Cuándo conviene usar UNION en lugar de JOIN?

UNION brilla cuando quieres visualizar la fusión de dos conjuntos de datos que viven en tablas separadas pero comparten una lógica común. En el caso de la clase, ver clientes y empleados juntos como "personas relacionadas con el negocio" es mucho más natural con UNION que con un JOIN forzado.

Algunos escenarios donde UNION encaja mejor:

  • Reportes que combinan registros de tablas históricas y actuales.
  • Listados que mezclan distintos tipos de usuarios bajo una misma vista.
  • Creación de nuevos conjuntos de datos derivados, como una tabla de "contactos" que sume clientes, empleados y proveedores.

La clave está en entender que JOIN cruza información horizontalmente y UNION la apila verticalmente. Cada operador resuelve un problema distinto, y dominar ambos te da libertad total para combinar tus datos como necesites.

¿Tú con cuál te llevas mejor, JOIN o UNION? Cuéntame en los comentarios qué tipo de consultas estás resolviendo en tu día a día.