Pregunta

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

¿Fue útil?

Solución

UNION pone líneas de consultas después de la otra, mientras que JOIN hace un producto cartesiano y subconjuntos que - completamente diferentes operaciones. 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 similary 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)

Otros consejos

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.

Mediante el uso de se une , puede recuperar los datos de dos o más tablas basadas en las relaciones lógicas entre las mesas. Las uniones indican cómo SQL debe utilizar datos de una tabla para seleccionar las filas de otra tabla.

La operación UNION es diferente de usar combinaciones que combinan columnas de dos tablas.

Ejemplo UNION:

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

Salida:

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

JOIN Ejemplo:

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

Esta es la salida todas las filas de ambas tablas para el que el a.Id = b.AFKId condición es verdadera.

Las juntas y los sindicatos pueden ser utilizados para combinar los datos de una o más tablas. La diferencia radica en cómo se combina los datos.

En términos simples, se une a combinar los datos en nuevas columnas . Si dos tablas se unen entre sí, a continuación, los datos de la primera tabla se muestran en un conjunto de columna, frente a la columna de la segunda tabla en la misma fila.

Los sindicatos se combinan los datos en filas nuevas. Si dos tablas son “unioned” juntos, entonces los datos de la primera tabla se encuentra en un conjunto de filas, y los datos de la segunda tabla en otro conjunto . Las filas están en el mismo resultado.

Aquí es una representación visual de una combinación. Tabla A y columnas de B se combinan en un solo resultado.

 introducir descripción de la imagen aquí

Cada fila en el resultado contiene columnas de ambas tablas A y B. Las filas se crean cuando las columnas de una tabla de columnas de concordancia de otro. Este partido se llama la condición de unión.

Esto hace que se une realmente grande para búsqueda de valores y su inclusión en los resultados. Este es generalmente el resultado de desnormalización (normalización de marcha atrás) y 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 un sindicato. En una unión cada fila dentro del resultado es de una tabla o la otra. En una unión, las columnas no se combinan para crear los resultados, las filas se combinan.

 introducir descripción de la imagen aquí

Los dos uniones y las uniones se pueden utilizar para combinar los datos de una o más tablas en una sola resultados. Los dos van de esto es diferentes maneras. Mientras que una se utiliza para combinar las columnas de diferentes tablas de combinación, la unión se utiliza para combinar filas.

Fuente

Usted puede ver las mismas explicaciones esquemáticas para ambos, pero estos son totalmente confuso.

Para UNIÓN:

Enter Descripción imagen aquí

Para JOIN:

Enter Descripción imagen aquí

JOIN:

Una unión se utiliza para la visualización de las columnas con el mismo o diferentes nombres de diferentes tablas. La salida está representada tendrá todas las columnas que se muestran de forma individual. Eso es el columnas estarán alineados uno junto al otro.

UNION:

El operador de conjunto UNION se utiliza para combinar los datos de dos tablas que tienen columnas con el mismo tipo de datos. Cuando una unión se lleva a cabo los datos de ambas tablas será recogido en una sola columna con 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 la realización de un tipo de combinación se muestra la consulta 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

Esto es una combinación.

UNIÓN significa que usted tiene a tablas o conjunto de resultados con el misma cantidad y tipo de columnas y se agrega a este mesas / ResultSets 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.

unen le permite relacionar los datos similares en diferentes tablas.

Una unión devuelve los resultados de dos consultas diferentes como un solo conjunto de registros.

Union hace que dos consultas parezcan una.Las uniones sirven para examinar dos o más tablas en una sola declaración de consulta.

Las juntas y uniones se pueden utilizar para combinar los datos de una o más tablas. La diferencia radica en cómo se combina los datos.

En términos simples, se une a combinar los datos en nuevas columnas. Si dos tablas se unen entre sí, a continuación, los datos de la primera tabla se muestran en un conjunto de columna, frente a la columna de la segunda tabla en la misma fila.

Los sindicatos se combinan los datos en nuevas filas. Si dos tablas son “unioned” juntos, entonces los datos de la primera tabla se encuentra 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 se fusionarán resultados ( de SQL Server para estar seguro) (función 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, de la identificación, el valor

1,3,1,3

1. El SQL se une a la cláusula se utiliza para combinar los registros a partir de dos o más tablas en una base de datos. Una unión es un medio para la combinación de campos de dos tablas mediante el uso de valores comunes a cada uno.

2. El operador UNION SQL combina el resultado de dos o más instrucciones SELECT. Cada instrucción SELECT dentro de la Unión debe tener el mismo número de columnas. Las columnas también deben tener tipos de datos similares. Además, las columnas de cada instrucción SELECT deben estar en el mismo orden.

por ejemplo: La tabla 1 clientes / table 2 órdenes

combinación interna:

SELECT ID, NOMBRE, importe, fecha

de clientes

combinación interna ÓRDENES

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

unión:

SELECT ID, NOMBRE, importe, fecha

de clientes

combinación izquierda ÓRDENES

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID

UNION

SELECT ID, NOMBRE, importe, fecha De clientes

RIGHT JOIN ÓRDENES

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Ussing UNIÓN

UNION es 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.

UNION Example:
SELECT 121 AS [Column1], 221 AS [Column2]
UNION
SELECT 321 AS [Column1], 422 AS [Column2]
Output:

Column1    Column2
-------------------
121          221
321          422

Ussing JOINs

se une, puede recuperar datos de dos o más tablas sobre la base de las relaciones lógicas entre las mesas.

JOIN Example:
SELECT a.Column1, b.Column2 FROM TblA a INNER JOIN TblB b ON a.Id = b.id

En el resumen, son similares, en los que dos tablas o conjuntos de resultados se combinan, pero es realmente UNION para combinar los conjuntos de resultados con el mismo número de columnas con las columnas QUE TIPOS DE DATOS SIMILARES. La estructura es que se añaden las mismas, solamente nuevas filas.

En suma, puede combinar tablas / conjuntos de resultados con cualquier estructura posible, incluyendo una combinación cartesiana donde no hay Común / columnas similares.

El operador UNION es sólo por la combinación de dos o más instrucciones SELECT.

Mientras JOIN es para la selección de filas de cada tabla, ya sea por el método interno, externo, izquierda o derecha.

Consulte aquí y aquí . Hay una explicación mejor con ejemplos.

Union Operación se combina resultado de la Vertical Aggregate de las filas, Unión operación se combina resultado de la Horizontal Agregado de las Columnas.

Me gusta pensar en la diferencia general como ser:

  • SE UNE unir tablas
  • UNION (et todos) combina consultas.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top