UNIÓN MySQL – 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.

UNIÓN MySQLUNIÓN MySQL

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 usa la cláusula DISTINCT por defecto 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.

Resumen

  • 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 usa 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 el banco de trabajo MySQL

En nuestro myFlixDB combinemos

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

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

Podemos usar el siguientewing pregunta

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

Ejecutando el script anterior en Banco de trabajo MySQL contra el myflixdb nos da el siguientewing 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