Was ist der Unterschied zwischen JOIN
und UNION
? Kann ich ein Beispiel haben?
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)
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.
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.
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
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.
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.
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.
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.
Union lässt zwei Anfragen wie eine aussehen. Joins dienen zum Untersuchen von zwei oder mehr Tabellen in einer einzelnen Abfrageanweisung
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.
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
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
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;