it-swarm.com.de

Was ist der Unterschied zwischen JOIN und UNION?

Was ist der Unterschied zwischen JOIN und UNION? Kann ich ein Beispiel haben?

213
Gold

UNION setzt Zeilen aus Abfragen nacheinander, während JOIN ein kartesisches Produkt erstellt und dieses unterordnet - völlig unterschiedliche Operationen. Triviales Beispiel für UNION:

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

ein ähnliches triviales Beispiel für 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)
267
Alex Martelli

UNION fasst die Ergebnisse von zwei oder mehr Abfragen in einer einzigen Ergebnismenge zusammen, die alle Zeilen enthält, die zu allen Abfragen in der Union gehören.

Mithilfe von JOINs können Sie Daten aus zwei oder mehr Tabellen basierend auf den logischen Beziehungen zwischen den Tabellen abrufen. Joins geben an, wie SQL Daten aus einer Tabelle verwenden soll, um die Zeilen in einer anderen Tabelle auszuwählen.

Die UNION-Operation unterscheidet sich von der Verwendung von JOINs, die Spalten aus zwei Tabellen kombinieren.

UNION-Beispiel:

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

Ausgabe:

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

JOIN-Beispiel:

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

Dadurch werden alle Zeilen aus beiden Tabellen ausgegeben, für die die Bedingung a.Id = b.AFKId wahr ist.

54
Kirtan

Möglicherweise sehen Sie für beide die gleichen schematischen Erklärungen, die jedoch völlig verwirrend sind.

Für UNION:

 Enter image description here

Für JOIN:

 Enter image description here

42
Java Main

BEITRETEN:

Ein Join wird verwendet, um Spalten mit denselben oder unterschiedlichen Namen aus verschiedenen Tabellen anzuzeigen. In der angezeigten Ausgabe Werden alle Spalten einzeln angezeigt. Das heißt, die Spalten von .__ werden nebeneinander ausgerichtet.

UNION:

Der UNION-Mengenoperator wird zum Kombinieren von Daten aus zwei Tabellen mit Spalten mit demselben Datentyp ..__ verwendet. Wenn eine UNION ausgeführt wird, werden die Daten aus beiden Tabellen In einer einzigen Spalte mit demselben Datentyp gesammelt .

Zum Beispiel:

Siehe die beiden folgenden Tabellen:

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

Für die Ausführung eines JOIN-Typs wird nun die Abfrage angezeigt.

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

Das ist ein Join.

UNION bedeutet, dass Sie Tabellen oder Resultsets mit der gleichen Anzahl und Art der Spalten Verwenden müssen, und Sie fügen dies den Tabellen/Resultsets von Hinzu. Schau dir dieses Beispiel an:

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

Joins und Unions können zum Kombinieren von Daten aus einer oder mehreren Tabellen verwendet werden. Der Unterschied besteht darin, wie die Daten kombiniert werden.

In einfachen Worten kombiniert joins Daten in neuen Spalten. Wenn zwei Tabellen zusammengefügt werden, werden die Daten aus der ersten Tabelle in einer Reihe von Spalten neben der Spalte der zweiten Tabelle in derselben Zeile angezeigt.

Unions kombinieren Daten in neuen Zeilen. Wenn zwei Tabellen zusammengefügt werden, befinden sich die Daten aus der ersten Tabelle in einem Satz von Zeilen und die Daten aus der zweiten Tabelle in einem anderen Satz. Die Zeilen haben das gleiche Ergebnis.

Hier ist eine visuelle Darstellung eines Joins. Die Spalten von Tabelle A und B werden zu einem einzigen Ergebnis zusammengefasst.

 enter image description here

Jede Zeile im Ergebnis enthält Spalten aus beiden Tabellen A und B. Zeilen werden erstellt, wenn die Spalten einer Tabelle mit den Spalten einer anderen übereinstimmen. Diese Übereinstimmung wird als Join-Bedingung bezeichnet.

Dies macht Joins wirklich großartig, um Werte nachzuschlagen und sie in Ergebnisse einzubeziehen. Dies ist normalerweise das Ergebnis der Denormalisierung (Umkehrung der Normalisierung) und beinhaltet die Verwendung des Fremdschlüssels in einer Tabelle zum Nachschlagen von Spaltenwerten mithilfe des Primärschlüssels in einer anderen.

Vergleichen Sie nun die obige Darstellung mit der einer Gewerkschaft. In einer Union ist jede Zeile innerhalb des Ergebnisses aus einer Tabelle OR der anderen. In einer Union werden Spalten nicht zu Ergebnissen kombiniert, Zeilen werden kombiniert.

 enter image description here

Joins und Unions können verwendet werden, um Daten aus einer oder mehreren Tabellen zu einem einzigen Ergebnis zu kombinieren. Beide gehen davon aus, dass dies unterschiedliche Wege sind. Während ein Join zum Kombinieren von Spalten aus verschiedenen Tabellen verwendet wird, wird die Union zum Kombinieren von Zeilen verwendet.

Quelle

33
Humoyun

Sie sind völlig verschiedene Dinge.

Mit einem join können Sie ähnliche Daten in verschiedenen Tabellen verknüpfen.

Eine Union gibt die Ergebnisse von zwei verschiedenen Abfragen als einzelnes Recordset zurück.

20
adeshsuryan

Union lässt zwei Anfragen wie eine aussehen. Joins dienen zum Untersuchen von zwei oder mehr Tabellen in einer einzelnen Abfrageanweisung

9
James L

Verknüpfungen und Vereinigungen können verwendet werden, um Daten aus einer oder mehreren Tabellen zu kombinieren. Der Unterschied besteht darin, wie die Daten kombiniert werden.

Vereinfacht ausgedrückt, verbinden Joins Daten in neue Spalten. Wenn zwei Tabellen zusammengefügt werden, werden die Daten aus der ersten Tabelle in einer Reihe von Spalten neben der Spalte der zweiten Tabelle in derselben Zeile angezeigt.

Gewerkschaften kombinieren Daten in neuen Zeilen. Wenn zwei Tabellen zusammengefügt werden, befinden sich die Daten der ersten Tabelle in einem Satz von Zeilen und die Daten der zweiten Tabelle in einem anderen Satz. Die Zeilen haben das gleiche Ergebnis.

2
VAHEED

Denken Sie daran, dass union die Ergebnisse zusammenführt ( SQL Server , um sicherzugehen) (Funktion oder Fehler?)

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

iD, Wert

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, Wert, ID, Wert

1,3,1,3

1
MonsterMagnet

USSING UNION

UNION ist die Kombination der Ergebnisse von zwei oder mehr Abfragen in einer einzelnen Ergebnismenge, die alle Zeilen enthält, die zu allen Abfragen in der Union gehören.

 UNION Beispiel: 
 SELECT 121 AS [Spalte1], 221 AS [Spalte2] 
 UNION
SELECT 321 AS [Spalte1], 422 AS [Spalte2] 
 Ausgabe: 

 Spalte1 Spalte2 
 ------------------- 
 121 221 
 321 422 

Ussing JOINs

Bei JOINs können Sie Daten aus zwei oder mehr Tabellen basierend auf den logischen Beziehungen zwischen den Tabellen abrufen.

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

0
user6341745

1 . Die SQL Joins-Klausel wird verwendet, um Datensätze aus zwei oder mehr Tabellen in einer Datenbank zu kombinieren. Ein JOIN ist ein Mittel zum Kombinieren von Feldern aus zwei Tabellen unter Verwendung von Werten, die allen gemeinsam sind. 

2 . Der SQL UNION-Operator kombiniert das Ergebnis von zwei oder mehr SELECT-Anweisungen . Jede SELECT-Anweisung innerhalb der UNION muss die gleiche Anzahl von Spalten haben. Die Spalten müssen auch ähnliche Datentypen haben. Außerdem müssen die Spalten in jeder SELECT-Anweisung in derselben Reihenfolge sein.

zum Beispiel: Tabelle 1 Kunden/Tabelle 2 Bestellungen

innere Verbindung:

WÄHLEN SIE ID, NAME, BETRAG, DATUM aus

VON KUNDEN

INNERE JOIN-AUFTRÄGE

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID; 

union:

WÄHLEN SIE ID, NAME, BETRAG, DATUM aus

VON KUNDEN

LINKE JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID 

UNION 

SELECT ID, NAME, AMOUNT, DATE VON KUNDEN

RECHTE JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID; 

0
ian