¿Cuál es la diferencia entre JOIN y UNION?

Resuelto Gold asked hace 15 años • 14 respuestas

¿ Cuál es la diferencia entre JOINy UNION? ¿Puedo tener un ejemplo?

Gold avatar May 25 '09 11:05 Gold
Aceptado

UNIONcoloca líneas de consultas una detrás de otra, mientras JOINcrea un producto cartesiano y lo subconjuntos: operaciones completamente diferentes. Ejemplo trivial de UNION:

mysql> SELECT 23 AS bah
    -> UNION
    -> SELECT 45 AS bah;
+-----+
| bah |
+-----+
|  23 | 
|  45 | 
+-----+
2 rows in set (0.00 sec)

ejemplo igualmente trivial de JOIN:

mysql> SELECT * FROM 
    -> (SELECT 23 AS bah) AS foo 
    -> JOIN 
    -> (SELECT 45 AS bah) AS bar
    -> ON (33=33);
+-----+-----+
| foo | bar |
+-----+-----+
|  23 |  45 | 
+-----+-----+
1 row in set (0.01 sec)
Alex Martelli avatar May 25 '2009 04:05 Alex Martelli

UNION combina los resultados de dos o más consultas en un único conjunto de resultados que incluye todas las filas que pertenecen a todas las consultas de la unión.

Al utilizar JOIN , puede recuperar datos de dos o más tablas en función de las relaciones lógicas entre las tablas. Las uniones indican cómo SQL debe usar los datos de una tabla para seleccionar las filas de otra tabla.

La operación UNION es diferente del uso de JOIN que combinan columnas de dos tablas.

UNIÓN Ejemplo:

SELECT 1 AS [Column1], 2 AS [Column2]
UNION
SELECT 3 AS [Column1], 4 AS [Column2]

Producción:

Column1    Column2
-------------------
1          2
3          4

ÚNETE Ejemplo:

SELECT a.Column1, b.Column2 FROM TableA a INNER JOIN TableB b ON a.Id = b.AFKId

Esto generará todas las filas de ambas tablas para las cuales la condición a.Id = b.AFKIdes verdadera.

Kirtan avatar May 25 '2009 05:05 Kirtan

Es posible que veas las mismas explicaciones esquemáticas para ambos, pero son totalmente confusas.

Para la UNIÓN:

Ingrese la descripción de la imagen aquí

Para UNIRSE:

Ingrese la descripción de la imagen aquí

Java Main avatar May 28 '2015 09:05 Java Main