Respuestas:
UNION
coloca líneas de consultas una tras otra, mientras JOIN
crea un producto cartesiano y lo subconjusta, 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 trivial similar 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-JOIN
y cómo puedo lograrlo en SQL estándar? Maria DB tiene un comando union join
, pero otras bases de datos no. Gracias.
Las uniones y uniones se pueden usar para combinar datos de una o más tablas. La diferencia radica en cómo se combinan los datos.
En términos simples, las combinaciones combinan datos en nuevas columnas . Si dos tablas se unen, los datos de la primera tabla se muestran en un conjunto de columnas junto a la columna de la segunda tabla en la misma fila.
Los sindicatos combinan datos en nuevas filas. Si dos tablas están "unidas" juntas, entonces los datos de la primera tabla están en un conjunto de filas, y los datos de la segunda tabla en otro conjunto. Las filas están en el mismo resultado.
Aquí hay una representación visual de una unión. Las columnas de la tabla A y B se combinan en un solo resultado.
Cada fila del resultado contiene columnas de AMBAS tablas A y B. Las filas se crean cuando las columnas de una tabla coinciden con las columnas de otra. Esta coincidencia se llama condición de unión.
Esto hace que las uniones sean realmente geniales para buscar valores e incluirlos en los resultados. Esto suele ser el resultado de la desnormalización (inversión de la normalización) e implica el uso de la clave externa en una tabla para buscar valores de columna mediante el uso de la clave primaria en otra.
Ahora compare la descripción anterior con la de una unión. En una unión, cada fila dentro del resultado es de una tabla O de la otra. En una unión, las columnas no se combinan para crear resultados, las filas se combinan.
Tanto las uniones como las uniones se pueden usar para combinar datos de una o más tablas en un solo resultado. Ambos se ocupan de esto es de diferentes maneras. Mientras que una combinación se usa para combinar columnas de diferentes tablas, la unión se usa para combinar filas.
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 en 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 combinaciones indican cómo SQL debe usar los datos de una tabla para seleccionar las filas en otra tabla.
La operación UNION es diferente de usar JOIN que combinan columnas de dos tablas.
Ejemplo de UNION:
SELECT 1 AS [Column1], 2 AS [Column2]
UNION
SELECT 3 AS [Column1], 4 AS [Column2]
Salida:
Column1 Column2
-------------------
1 2
3 4
ÚNASE 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.
Puede ver las mismas explicaciones esquemáticas para ambos, pero estas son totalmente confusas.
Para UNION:
Para unirse:
Una combinación se utiliza para mostrar columnas con los mismos o diferentes nombres de diferentes tablas. La salida mostrada tendrá todas las columnas mostradas individualmente. Es decir, las columnas se alinearán una al lado de la otra.
El operador de conjunto UNION se utiliza para combinar datos de dos tablas que tienen columnas con el mismo tipo de datos. Cuando se realiza una UNIÓN, los datos de ambas tablas se recopilarán en una sola columna que tenga el mismo tipo de datos.
Por ejemplo:
Vea las dos tablas que se muestran a continuación:
Table t1
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
Table t2
manufacturer_id manufacturer
1 ABC Gmbh
2 DEF Co KG
Ahora, para realizar un tipo JOIN, la consulta se muestra a continuación.
SELECT articleno, article, manufacturer
FROM t1 JOIN t2 ON (t1.manufacturer_id =
t2.manufacturer_id);
articelno article manufacturer
1 hammer ABC GmbH
2 screwdriver DEF Co KG
Eso es una unión.
UNION significa que debe crear tablas o conjuntos de resultados con la misma cantidad y tipo de columnas y agregar esto a las tablas / conjuntos de resultados juntos. Mira este ejemplo:
Table year2006
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
Table year2007
Articleno article price manufacturer_id
1 hammer 6 $ 3
2 screwdriver 7 $ 4
SELECT articleno, article, price, manufactruer_id
FROM year2006
UNION
SELECT articleno, article, price, manufacturer_id
FROM year2007
articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
1 hammer 6 $ 3
2 screwdriver 7 $ 4
Son cosas completamente diferentes.
Una unión le permite relacionar datos similares en diferentes tablas.
Una unión devuelve los resultados de dos consultas diferentes como un único conjunto de registros.
Las uniones y uniones se pueden usar para combinar datos de una o más tablas. La diferencia radica en cómo se combinan los datos.
En términos simples, las combinaciones combinan datos en nuevas columnas. Si dos tablas se unen, los datos de la primera tabla se muestran en un conjunto de columnas junto a la columna de la segunda tabla en la misma fila.
Los sindicatos combinan datos en nuevas filas. Si dos tablas están "unidas" juntas, entonces los datos de la primera tabla están en un conjunto de filas, y los datos de la segunda tabla en otro conjunto. Las filas están en el mismo resultado.
Recuerde que la unión combinará resultados ( SQL Server para estar seguro) (¿característica o error?)
select 1 as id, 3 as value
union
select 1 as id, 3 as value
id, valor
1,3
select * from (select 1 as id, 3 as value) t1 inner join (select 1 as id, 3 as value) t2 on t1.id = t2.id
id, valor, id, valor
1,3,1,3
1. La cláusula SQL Joins se usa para combinar registros de dos o más tablas en una base de datos. Unir es un medio para combinar campos de dos tablas mediante el uso de valores comunes a cada uno.
2. El operador SQL UNION combina el resultado de dos o más instrucciones SELECT. Cada instrucción SELECT dentro de UNION debe tener el mismo número de columnas. Las columnas también deben tener tipos de datos similares. Además, las columnas en cada instrucción SELECT deben estar en el mismo orden.
por ejemplo: tabla 1 clientes / tabla 2 pedidos
unir internamente:
SELECCIONE ID, NOMBRE, CANTIDAD, FECHA
DE CLIENTES
ÓRDENES INTERIORES
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
Unión:
SELECCIONE ID, NOMBRE, CANTIDAD, FECHA
DE CLIENTES
IZQUIERDA UNIR PEDIDOS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
UNIÓN
SELECCIONE ID, NOMBRE, CANTIDAD, FECHA DE CLIENTES
DERECHO UNIR PEDIDOS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
Usando UNION
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 en la unión.
Ejemplo de UNION: SELECCIONE 121 AS [Columna1], 221 AS [Columna2] UNIÓN SELECCIONE 321 AS [Columna1], 422 AS [Columna2]
Salida: Columna1 Columna2 ------------------- 121 221 321 422
Utilizando JOINs
JOINs, puede recuperar datos de dos o más tablas en función de las relaciones lógicas entre las tablas.
ÚNASE Ejemplo: SELECCIONE a.Column1, b.Column2 DESDE TblA a INNER JOIN TblB b ON a.Id = b.id
En resumen, son similares, ya que se combinan dos tablas o conjuntos de resultados, pero UNION es realmente para combinar conjuntos de resultados con el MISMO NÚMERO DE COLUMNAS con las COLUMNAS QUE TIENEN TIPOS DE DATOS SIMILARES. La ESTRUCTURA es la misma, solo se agregan nuevas filas.
En las combinaciones, puede combinar tablas / conjuntos de resultados con cualquier estructura posible, incluida una combinación cartesiana donde NO hay columnas compartidas / similares.
Me gusta pensar que la diferencia general es: