MySQL UNIÓN – Tutorial Completo

¿Qué es una Unión?

Las uniones combinan los resultados de múltiples consultas SELECT en un conjunto de resultados consolidado.

El único requisito para que esto funcione es que el número de columnas debe ser el mismo en todas las consultas SELECT que deben combinarse.

Supongamos que tenemos dos tablas de la siguiente manera.

MySQL UNIÓNMySQL UNIÓN

Ahora creemos una consulta UNION para combinar ambas tablas usando DISTINCT

SELECT column1, column2 FROM `table1`
UNION DISTINCT
SELECT  column1,column2  FROM `table2`;

Aquí se eliminan las filas duplicadas y solo se devuelven filas únicas.

Unión distinta

Nota: MySQL utiliza la cláusula DISTINCT como predeterminada al ejecutar consultas UNION si no se especifica nada.

Ahora creemos una consulta UNION para combinar ambas tablas usando ALL

SELECT `column1`,` column1` FROM `table1`
UNION ALL
SELECT ` column1`,` column1`  FROM `table2`;

Aquí se incluyen filas duplicadas y ya que usamos TODAS.

Unión-Todos

¿Por qué utilizar sindicatos?

Supongamos que hay un defecto en el diseño de su base de datos y está utilizando dos tablas diferentes destinadas al mismo propósito. Desea consolidar estas dos tablas en una y evitar que los registros duplicados se introduzcan en la nueva tabla. Puede utilizar UNION en tales casos.

Resum

  • El comando UNION se utiliza para combinar más de un resultado de consulta SELECT en una única consulta que contiene filas de todas las consultas seleccionadas.
  • El número de columnas y tipos de datos en el SELECCIONAR declaraciones debe ser el mismo para que funcione el comando UNION.
  • La cláusula DISTINCT se utiliza para eliminar valores duplicados del conjunto de resultados de la consulta UNION. MySQL utiliza la cláusula DISTINCT como predeterminada al ejecutar consultas UNION si no se especifica nada.
  • La cláusula ALL se utiliza para devolver todas las filas duplicadas en la consulta UNION.

Ejemplos prácticos utilizando MySQL banco de trabajo

En nuestro myFlixDB combinemos

número_membresía y nombres_completos de la tabla de miembros

con

movie_id y título de la tabla de películas

Podemos utilizar la siguiente consulta

SELECT `membership_number`,`full_names` FROM `members`
UNION
SELECT `movie_id`,`title` FROM `movies`;

Ejecutando el script anterior en MySQL banco de trabajo contra myflixdb nos da los siguientes resultados que se muestran a continuación.

membership_number full_names
1 Janet Jones
2 Janet Smith Jones
3 Robert Phil
4 Gloria Williams
5 Leonard Hofstadter
6 Sheldon Cooper
7 Rajesh Koothrappali
8 Leslie Winkle
9 Howard Wolowitz
16 67% Guilty
6 Angels and Demons
4 Code Name Black
5 Daddy's Little Girls
7 Davinci Code
2 Forgetting Sarah Marshal
9 Honey mooners
19 movie 3
1 Pirates of the Caribean 4
18 sample movie
17 The Great Dictator
3 X-Men