Domanda

Qual è la differenza tra JOIN E UNION?Posso avere un esempio?

È stato utile?

Soluzione

UNION mette linee dalle query uno dopo l'altro, mentre JOIN rende un prodotto cartesiano e sottoinsiemi che - completamente diverse operazioni. banale esempio di UNION:

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

Analogamente esempio banale di 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)

Altri suggerimenti

UNION combina i risultati di due o più query in un unico set di risultati che include tutte le righe che appartengono a tutte le query dell'Unione.

si unisce , è possibile recuperare dati provenienti da due o più tabelle basate su relazioni logiche tra le tabelle. I join indicare come SQL dovrebbe utilizzare i dati da una tabella per selezionare le righe di un'altra tabella.

L'operazione UNION è diverso dall'utilizzo di join che combinano colonne di due tabelle.

UNION Esempio:

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

Output:

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

JOIN Esempio:

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

Ciò produrrà tutte le righe di entrambe le tabelle per cui la condizione a.Id = b.AFKId è vero.

I giunti e le unioni possono essere utilizzati per combinare dati provenienti da una o più tabelle. La differenza sta nel modo in cui i dati vengono combinati.

In termini semplici, unisce combinare i dati in nuove colonne . Se due tabelle sono uniti insieme, i dati della prima tabella viene fornita su una serie di colonna a fianco colonna della seconda tabella nella stessa riga.

organismi di combinare i dati in nuove righe. Se due tabelle sono “unioned” insieme, i dati della prima tabella è in un insieme di righe, ei dati della seconda tabella in un altro set . Le righe sono nello stesso risultato.

Qui è una rappresentazione visiva di un join. colonne di B Tabella A e sono combinati in un unico risultato.

 entrare descrizione dell'immagine qui

Ogni riga del risultato contiene vengono create le colonne da entrambi tabelle A e B. Righe quando le colonne da una tabella coi colonne da altre. Questa partita è chiamata la condizione di join.

In questo modo si unisce veramente grande per cercare i valori e la loro inclusione nei risultati. Questo è solitamente il risultato di denormalizing (inversione normalizzazione) e coinvolge usando la chiave esterna in una tabella per cercare i valori di colonna utilizzando la chiave primaria in un altro.

Ora confrontare la rappresentazione di cui sopra con quella di un sindacato. In un'unione ogni riga all'interno del risultato è da una tabella o l'altro. In un'unione, colonne non sono combinate per creare i risultati, le righe vengono combinati.

 entrare descrizione dell'immagine qui

Sia unisce e sindacati può essere utilizzato per combinare dati provenienti da una o più tabelle in un unico risultato. Entrambi vanno di questo è modi diversi. Mentre un join viene utilizzato per combinare le colonne di tabelle diverse, il sindacato viene utilizzato per combinare righe.

Fonte

È possibile vedere le stesse spiegazioni schematiche per entrambi, ma questi sono totalmente confuso.

Per UNION:

Enter image description qui

Per JOIN:

Enter image description qui

JOIN:

Un join è utilizzato per la visualizzazione di colonne con lo stesso o diversi nomi di tabelle diverse. L'output visualizzato avrà tutte le colonne indicate singolarmente. Questo è il colonne saranno allineati uno accanto all'altro.

UNION:

L'operatore impostato UNION viene utilizzato per combinare i dati da due tabelle che hanno colonne con lo stesso tipo di dati. Quando un UNION viene eseguita i dati da entrambe le tabelle saranno raccolti in una singola colonna avente lo stesso tipo di dati.

Ad esempio:

Si vedano le due tabelle riportate di seguito:

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

Ora, per l'esecuzione di un tipo di join della query è mostrato di seguito.

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

Questo è un join.

UNION significa che si deve alle tabelle o di risultati con il stessa quantità e il tipo di colonne e si aggiunge questo a tavoli / ResultSets insieme. Guarda questo esempio:

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

Sono cose completamente diverse.

Un uniscono permette di mettere in relazione i dati simili in diverse tabelle.

Un connubio restituisce i risultati di due query diverse in un unico set di record.

L'unione fa due query assomigliano uno. Unisce sono per l'esame due o più tabelle in un unico prospetto di query

I giunti e le unioni possono essere utilizzati per combinare dati provenienti da una o più tabelle. La differenza sta nel modo in cui i dati vengono combinati.

In termini semplici, si unisce combinare i dati in nuove colonne. Se due tabelle sono uniti insieme, i dati della prima tabella viene fornita su una serie di colonna a fianco colonna della seconda tabella nella stessa riga.

I sindacati si combinano i dati in nuove righe. Se due tabelle sono “unioned” insieme, quindi i dati dalla prima tabella è in un insieme di righe, ei dati dalla seconda tabella in un altro gruppo. Le righe sono nello stesso risultato.

Ricordate che l'unione si fondono risultati ( SQL Server per essere sicuri) (funzione o bug ?)

select 1 as id, 3 as value
union
select 1 as id, 3 as value

id, il valore

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, valore, id, il valore

1,3,1,3

1.La clausola SQL Joins viene utilizzata per combinare record di due o più tabelle in un database.Un JOIN è un mezzo per combinare i campi di due tabelle utilizzando valori comuni a ciascuna.

2.L'operatore SQL UNION combina il risultato di due o più istruzioni SELECT.Ciascuna istruzione SELECT all'interno dell'UNION deve avere lo stesso numero di colonne.Le colonne devono avere anche tipi di dati simili.Inoltre, le colonne in ciascuna istruzione SELECT devono essere nello stesso ordine.

Per esempio:tavolo 1 clienti/tavolo 2 ordini

unione interna:

SELEZIONA ID, NOME, IMPORTO, DATA

DAI CLIENTI

ORDINI DI JOIN INTERNI

ON CLIENTI.ID = ORDINI.CLIENTE_ID;

unione:

SELEZIONA ID, NOME, IMPORTO, DATA

DAI CLIENTI

SINISTRA UNISCI GLI ORDINI

ON CLIENTI.ID = ORDINI.CLIENTE_ID

UNIONE

Seleziona ID, nome, importo, data dai clienti

GIUSTO UNIRE GLI ORDINI

ON CLIENTI.ID = ORDINI.CLIENTE_ID;

Ussing UNION

UNION è combina i risultati di due o più query in un unico set di risultati che include tutte le righe che appartengono a tutte le query del sindacato.

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 JOIN

Si unisce, è possibile recuperare i dati da due o più tabelle in base a relazioni logiche tra le tabelle.

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

In astratto, essi sono simili, dal fatto che due tabelle o gruppi di risultati vengono combinati, ma UNION è davvero per combinare insiemi di risultati con lo stesso numero di colonne con le colonne presentanti TIPI dati simili. La struttura è si aggiungono gli stessi, solo nuove righe.

Nel unisce, è possibile combinare tabelle / set di risultati con qualsiasi possibile struttura, tra cui un join cartesiano dove non ci sono condivisi / colonne simili.

L'operatore UNION è solo per la combinazione di due o più istruzioni SELECT.

Mentre ACCR è per la selezione di righe di ogni tabella, mediante il metodo interno, esterno, verso sinistra o verso destra.

Fare riferimento a qui e qui . C'è una spiegazione migliore di esempi.

Union Il funzionamento è risultato del verticale combinato aggregato delle righe, Unione funzionamento è risultato combinato della Orizzontale Complessivo delle colonne.

Mi piace pensare alla differenza generale essere:

  • ENTRA unire le tabelle
  • UNION (et tutti) combina le query.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top