Domanda Qual è la differenza tra JOIN e UNION?


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


198
2018-05-25 04:55


origine


risposte:


UNION mette le linee dalle query una dopo l'altra, mentre JOIN crea un prodotto cartesiano e lo sostituisce: operazioni completamente diverse. Esempio banale di UNION:

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

similario 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)

250
2018-05-25 04:57



UNIONE 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 nell'unione.

Usando join, è possibile recuperare i dati da due o più tabelle in base alle relazioni logiche tra le tabelle. I join indicano in che modo SQL deve utilizzare i dati di una tabella per selezionare le righe in un'altra tabella.

L'operazione UNION è diversa 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]

Produzione:

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 da entrambe le tabelle per le quali la condizione a.Id = b.AFKId è vero.


51
2018-05-25 05:01



Potresti vedere le stesse spiegazioni schematiche per entrambi, ma queste sono totalmente confuse.

Per UNION:

Enter image description here

Per JOIN:

Enter image description here


38
2018-05-28 09:50



ADERIRE:

Un join è usato per visualizzare colonne con lo stesso o nomi diversi da tabelle diverse. L'output visualizzato avrà tutte le colonne mostrate individualmente. Questo è il le colonne saranno allineate l'una accanto all'altra.

UNIONE:

L'operatore UNION set viene utilizzato per combinare i dati da due tabelle che hanno colonne con lo stesso tipo di dati. Quando viene eseguita un'UNIONE, i dati di entrambe le tabelle saranno raccolti in un'unica colonna con lo stesso tipo di dati.

Per esempio:

Vedi le due tabelle mostrate 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 eseguire un tipo JOIN la query è mostrata sotto.

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 devi avere tabelle o risultati con il stessa quantità e tipo di colonne e tu aggiungi questo a tabelle / set di risultati 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

37
2017-07-08 12:04



Join e Unions possono essere utilizzati per combinare dati da una o più tabelle. La differenza sta nel modo in cui i dati vengono combinati.

In parole povere, unisce unisce i dati in nuove colonne. Se due tabelle vengono unite insieme, i dati della prima tabella vengono visualizzati in un gruppo di colonne accanto alla colonna della seconda tabella nella stessa riga.

I sindacati combinano i dati in nuove righe.  Se due tabelle sono "unite" insieme, i dati della prima tabella si trovano in un gruppo di righe e i dati della seconda tabella in un altro insieme. Le righe sono nello stesso risultato.

Ecco una rappresentazione visiva di un join. Le colonne della tabella A e B sono combinate in un unico risultato.

enter image description here

Ogni riga del risultato contiene le colonne della tabella BOTH A e B. Le righe vengono create quando le colonne di una tabella corrispondono a colonne di un'altra. Questa corrispondenza è chiamata condizione di join.

Questo rende i join davvero grandiosi per cercare valori e includerli nei risultati. Questo di solito è il risultato della denormalizzazione (normalizzazione inversa) e comporta l'uso della chiave esterna in una tabella per cercare i valori delle colonne utilizzando la chiave primaria in un'altra.

Ora confronta la descrizione sopra con quella di un'unione. In un'unione ogni riga all'interno del risultato proviene da una tabella O dall'altra. In un'unione, le colonne non vengono combinate per creare risultati, le righe vengono combinate.

enter image description here

Entrambi i join e i join possono essere utilizzati per combinare i dati di una o più tabelle in un singolo risultato. Entrambe vanno in questo modo in modi diversi. Mentre un join viene utilizzato per combinare colonne di tabelle diverse, l'unione viene utilizzata per combinare le righe.

fonte


22
2017-08-28 04:04



Sono cose completamente diverse.

UN aderire ti consente di mettere in relazione dati simili in diverse tabelle.

Un'unione restituisce i risultati di due query diverse come un singolo recordset.


20
2018-03-26 09:34



L'unione fa apparire due domande come una. I join servono per esaminare due o più tabelle in una singola istruzione di query


10
2018-05-25 05:00