Frage

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

War es hilfreich?

Lösung

UNION legen Linien von Abfragen hintereinander, während JOIN macht ein kartesisches Produkt und Teilmengen es - völlig unterschiedliche Vorgänge. Trivial Beispiel UNION:

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

Similary triviales Beispiel von 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)

Andere Tipps

UNION die Ergebnisse von zwei oder kombiniert mehr Abfragen in eine einzige Ergebnismenge, die alle Zeilen enthalten, die in der Gewerkschaft zu allen Fragen gehören.

Durch die Verwendung von JOINs , können Sie abrufen Daten aus zwei oder mehreren Tabellen basieren auf logischen Beziehungen zwischen den Tabellen. Joins angeben, wie SQL-Daten aus einer Tabelle verwenden, sollte die Zeilen in einer anderen Tabelle zu wählen.

Die UNION Operation unterscheidet sich von Joins, dass 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

Dies gibt alle Zeilen aus beiden Tabellen, für die die Bedingung a.Id = b.AFKId wahr ist.

Joins und Unions können verwendet werden, um Daten zu kombinieren, aus einer oder mehreren Tabellen. Der Unterschied liegt darin, wie die Daten kombiniert wird.

In einfachen Worten, schließt sich Daten in neue Spalten kombiniert . Wenn zwei Tische miteinander verbunden werden, dann wird die Daten aus der ersten Tabelle wird in einem Satz von Spalte neben der zweiten Tabelle der Spalt in der gleichen Zeile gezeigt.

Unions-Daten in neue Reihen kombinieren. Wenn zwei Tabellen „unioned“ zusammen sind, dann wird die Daten aus der ersten Tabelle ist in einer Reihe von Zeilen, und die Daten aus der zweiten Tabelle in einem anderen Satz . Die Zeilen sind in dem gleichen Ergebnis.

Hier ist eine visuelle Darstellung einer Verknüpfung. Tabelle A und B Spalten werden kombiniert in ein einziges Ergebnis.

 image description hier

Jede Zeile in der Folge enthält Spalten von beide Tabelle A und B. Zeilen werden erzeugt, wenn Spalten aus einer Tabelle Spiel Spalt von einem anderen. Dieses Spiel wird die Join-Bedingung genannt.

Das macht verbindet wirklich toll für Werte aufzublicken und sie in Ergebnisse. Dies ist in der Regel das Ergebnis der Denormalisierung (Umkehr-Normalisierung) und beinhaltet den Fremdschlüssel in einer Tabelle mit Spaltenwert nachschlagen durch den Primärschlüssel in einem anderen verwendet wird.

Vergleichen Sie nun die oben Darstellung mit der einer Vereinigung. In einer Union jede Reihe im Ergebnis wird aus einer Tabelle oder der anderen Seite. In einer Union, sind Spalten kombiniert werden keine Anzeigen zu erstellen, Zeilen kombiniert werden.

 image description hier

Beide verbindet und Gewerkschaften können verwendet werden, um Daten zu kombinieren, aus einer oder mehreren Tabellen in einer einzigen Treffer. Beide gehen über diese verschiedenen Möglichkeiten ist. Während eines verwendeten Joinspalten aus verschiedenen Tabellen zu kombinieren, ist die Vereinigung verwendet, um Zeilen zu kombinieren.

Quelle

Sie können die gleichen schematischen Erklärungen für beide sehen, aber diese sind total verwirrend.

Für UNION:

Gib Bildbeschreibung hier

Für JOIN:

Gib Bildbeschreibung hier

JOIN:

Eine Verknüpfung zur Anzeige von Spalten mit derselben verwendet wird, oder verschiedene Namen aus verschiedenen Tabellen. Der Ausgang angezeigt müssen alle einzeln gezeigt Spalten. Das heißt, die Spalten nebeneinander ausgerichtet werden.

UNION:

Die Union Operator wird für die Kombination von Daten aus zwei verwendet Tabellen, die Spalten mit dem gleichen Datentyp hat. Wenn eine UNION der Daten aus beiden Tabellen durchgeführt wird, wird in einer einzigen Spalte gesammelt denselben Datentyp hat.

Zum Beispiel:

Siehe die beiden Tabellen unten dargestellt:

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

Jetzt einen JOIN-Typs für die Durchführung der Abfrage unten gezeigt wird.

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 eine Verknüpfung.

UNION bedeutet, dass Sie in Tabellen oder resultset mit dem haben gleiche Menge und Art der Spalten und fügen Sie diese zu Tabellen / Resultsets zusammen. Schauen Sie sich dieses Beispiel:

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

Sie sind völlig verschiedene Dinge.

beitreten können Sie ähnliche Daten in verschiedenen Tabellen beziehen.

Eine Gewerkschaft gibt die Ergebnisse von zwei verschiedenen Abfragen als einzelnes Recordset.

Union macht zwei Abfragen wie eine aussehen. Schließt sich für die Prüfung zwei oder mehr Tabellen in einer einzigen Abfrage-Anweisung

Die Verbindungen und Gewerkschaften können verwendet werden, um Daten zu kombinieren, aus einer oder mehreren Tabellen. Der Unterschied liegt darin, wie die Daten kombiniert wird.

In einfachen Worten, schließt sie Daten in neue Spalten kombinieren. Wenn zwei Tische miteinander verbunden werden, dann wird die Daten aus der ersten Tabelle wird in einem Satz von Spalte neben der zweiten Tabelle der Spalt in der gleichen Zeile gezeigt.

Unions kombinieren Daten in neue Reihen. Wenn zwei Tabellen „unioned“ zusammen sind, dann werden die Daten aus der ersten Tabelle ist in einer Reihe von Zeilen, und die Daten von der zweiten Tabelle in einem anderen Satz. Die Zeilen sind in dem gleichen Ergebnis.

Beachten Sie, dass Union werden die Ergebnisse zusammenführen ( SQL Server sicher sein) (Feature oder Bug ?)

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

id, value

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

1,3,1,3

1. Die SQL-Joins Klausel Datensätze aus zwei oder mehreren Tabellen in einer Datenbank zu verbinden verwendet wird. A JOIN ist ein Mittel für die Felder aus zwei Tabellen Kombinieren von Werten gemeinsam jeweils verwenden.

2. Der SQL-UNION-Operator kombiniert das Ergebnis von zwei oder mehr SELECT-Anweisungen. Jede SELECT-Anweisung innerhalb der Union müssen 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 der gleichen Reihenfolge sein.

zum Beispiel: Tabelle 1 Kunden / Tabelle 2 Aufträge

INNER JOIN:

SELECT ID, Name, Betrag, Datum

VON KUNDEN

INNER JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Union:

SELECT ID, Name, Betrag, Datum

VON KUNDEN

LEFT JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID

UNION

SELECT ID, Name, Betrag, Datum VON KUNDEN

RIGHT JOIN ORDERS

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Ussing UNION

UNION ist kombiniert die Ergebnisse von zwei oder mehr Abfragen in eine einzige Ergebnismenge, die alle Zeilen enthalten, die in der Gewerkschaft zu allen Fragen gehören.

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

JOIN, Sie Daten aus zwei oder mehreren Tabellen basieren auf logischen Beziehungen zwischen den Tabellen abrufen können.

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

In der Zusammenfassung, sie sind ähnlich, dass zwei Tabellen oder Ergebnismengen kombiniert werden, aber UNION ist wirklich Ergebnismengen mit der gleichen Anzahl von Spalten mit den Spalten, die ähnlichen Datentypen für die Kombination. Die Struktur ist die gleiche, nur neue Zeilen hinzugefügt werden.

In beitritt, können Sie Tabellen / Ergebnismengen mit jeder möglichen Struktur kombinieren, darunter ein kartesischen kommen, wo es keine shared / ähnliche Spalten.

Der UNION-Operator ist nur für die Kombination von zwei oder mehr SELECT-Anweisungen.

Während JOIN ist für die Zeilen aus jeder Tabelle, entweder durch die innere, äußere, linke oder rechte Methode auswählen.

Siehe hier und hier . Es gibt eine bessere Erklärung mit Beispielen.

Union Betrieb kombiniert Ergebnis der Vertikal Aggregate der Zeilen, Union Betrieb kombiniert Ergebnis der Horizontal Aggregate der Spalten.

Ich mag den allgemeinen Unterschiedes als Wesen denken:

  • JOINS beitreten Tabellen
  • UNION (et all) kombiniert Abfragen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top