JOIN VS UNION EN MYSQL: DIFERENCIAS Y EJEMPLOS

En MySQL es muy común confundir "JOIN" y "UNION", aunque hacen cosas completamente distintas.

JOIN – Combina columnas de tablas relacionadas

Une columnas de dos o más tablas que están relacionadas entre sí, normalmente a través de una clave foránea.

Cuándo usarlo

Cuando las tablas tienen una relación, por ejemplo, un IdCliente que conecta la tabla Clientes con la tabla Pedidos.

Tipos más comunes en MySQL

  • "INNER JOIN": Solo las filas que coinciden en ambas tablas
  • "LEFT JOIN": Todas las filas de la tabla izquierda y coincidencias de la derecha
  • "RIGHT JOIN":Todas las filas de la tabla derecha y coincidencias de la izquierda
  • "FULL OUTER JOIN": No existe de forma nativa en MySQL se simula con "UNION" de un "LEFT JOIN" y un " RIGHT JOIN"

Ejemplo práctico

SELECT c.Nombre, p.Total
FROM Clientes c
INNER JOIN Pedidos p ON c.IdCliente = p.IdCliente;

UNION – Combina filas de consultas con la misma estructura

Une filas, resultados, de dos o más consultas que tienen el mismo número de columnas y tipos de datos compatibles.

Cuándo usarlo

Cuando se quieren juntar resultados similares que vienen de consultas distintas, o de la misma tabla con filtros diferentes.

Diferencia importante

  • "UNION": Elimina los duplicados
  • "UNION ALL": Conserva todos los registros ,incluyendo duplicados, y es más rápido

Ejemplo práctico

SELECT Nombre FROM Clientes2024
UNION
SELECT Nombre FROM Clientes2025;
Otro ejemplo típico:

SELECT producto, cantidad FROM ventas_enero
UNION ALL
SELECT producto, cantidad FROM ventas_febrero;

¿Cuándo usar cada uno?

Situación Usar Motivo
Quieres información relacionada de varias tablas JOIN Combina columnas de tablas relacionadas
Quieres juntar resultados de consultas similares UNION Combina filas con la misma estructura
Necesitas eliminar duplicados UNION Elimina automáticamente los repetidos
Quieres conservar todos los registros UNION ALL Más rápido y no elimina nada

Consejo importante

  • Usar "JOIN" cuando se necesita combinar información relacionada de diferentes tablas.
  • Usar "UNION", o "UNION ALL", cuando se quiere combinar resultados de consultas similares.