¿Cuál es la diferencia entre JOIN y UNION?
¿ Cuál es la diferencia entre JOIN
y UNION
? ¿Puedo tener un ejemplo?
UNION
coloca líneas de consultas una detrás de otra, mientras JOIN
crea 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)
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.AFKId
es verdadera.
Es posible que veas las mismas explicaciones esquemáticas para ambos, pero son totalmente confusas.
Para la UNIÓN:
Para UNIRSE: