Jedes moderne DBS wie MariaDB implementiert einen UNION JOIN-Befehl. Dies ist ein SQL- Befehl, der jedoch nicht bekannt ist oder nicht verwendet wird. Erfahren Sie mehr über UNION JOIN .
Auston
Antworten:
301
UNIONSetzt Zeilen aus Abfragen nacheinander, erstellt JOINein kartesisches Produkt und unterteilt es - völlig andere Vorgänge. Triviales Beispiel für UNION:
Können Sie mir bitte sagen, was ein ist UNION-JOINund wie ich es in Standard-SQL erreichen kann? Maria DB hat einen Befehl union join, andere Datenbanken jedoch nicht. Vielen Dank.
Erran Morad
72
Joins und Unions können verwendet werden, um Daten aus einer oder mehreren Tabellen zu kombinieren. Der Unterschied liegt in der Kombination der Daten.
In einfachen Worten kombinieren Joins Daten zu neuen Spalten . Wenn zwei Tabellen miteinander verbunden sind, werden die Daten aus der ersten Tabelle in einem Satz von Spalten neben der Spalte der zweiten Tabelle in derselben Zeile angezeigt.
Gewerkschaften kombinieren Daten in neuen Zeilen. Wenn zwei Tabellen miteinander „verbunden“ sind, 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 sind im gleichen 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 Spalten aus einer Tabelle mit Spalten aus 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 umfasst die Verwendung des Fremdschlüssels in einer Tabelle, um Spaltenwerte mithilfe des Primärschlüssels in einer anderen Tabelle nachzuschlagen.
Vergleichen Sie nun die obige Darstellung mit der einer Gewerkschaft. In einer Union stammt jede Zeile im Ergebnis aus einer Tabelle ODER der anderen. In einer Union werden Spalten nicht kombiniert, um Ergebnisse zu erstellen. Zeilen werden kombiniert.
Sowohl Joins als auch Unions können verwendet werden, um Daten aus einer oder mehreren Tabellen zu einem einzigen Ergebnis zu kombinieren. Sie gehen beide auf unterschiedliche Weise vor. Während ein Join zum Kombinieren von Spalten aus verschiedenen Tabellen verwendet wird, wird die Vereinigung zum Kombinieren von Zeilen verwendet.
Dies ist ein fantastisches visuelles Beispiel. Ich war mir ziemlich sicher, dass ich nach den anderen Antworten verstanden habe, aber das hat es komplett geklärt.
seadoggie01
Sollte es für das Join-Beispiel technisch gesehen nicht etwa 10 Spalten für das Ergebnis geben?
Bharath Ram
60
UNION kombiniert die Ergebnisse von zwei oder mehr Abfragen zu einer einzigen Ergebnismenge, 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 logischen Beziehungen zwischen den Tabellen abrufen. Verknüpfungen 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.
Diese Bilder implizieren, dass FULL OUTER JOINdas das gleiche ist wie UNION, die Unterschiede haben
icc97
1
Diese Antwort weist darauf hin, dass diese Bilder verwirrend sind (welche IMO sie sind), aber dann nicht erklären, warum oder eine Klärung der ursprünglichen Frage bieten.
Josh D.
1
Jedes Bild mit Diagrammen erklärt die Situation perfekt. Es gibt kein einzelnes Bild, mit dem alle Diagramme zusammengeführt werden können. Das wird verwirrender sein.
Java Main
41
BEITRETEN:
Ein Join wird zum Anzeigen von Spalten mit demselben oder unterschiedlichen Namen aus verschiedenen Tabellen verwendet. In der angezeigten Ausgabe werden alle Spalten einzeln angezeigt. Das heißt, die Spalten werden nebeneinander ausgerichtet.
UNION:
Der UNION-Set-Operator wird zum Kombinieren von Daten aus zwei Tabellen verwendet, die Spalten mit demselben Datentyp enthalten. Wenn eine UNION ausgeführt wird, werden die Daten aus beiden Tabellen in einer einzelnen Spalte mit demselben Datentyp gesammelt.
Beispielsweise:
Siehe die beiden folgenden Tabellen:
Table t1
Articleno article price manufacturer_id1 hammer 3$12 screwdriver 5$2Table t2
manufacturer_id manufacturer1 ABC Gmbh2 DEF Co KG
Um nun einen JOIN-Typ auszuführen, wird die Abfrage unten gezeigt.
SELECT articleno, article, manufacturerFROM t1 JOIN t2 ON(t1.manufacturer_id =
t2.manufacturer_id);
articelno article manufacturer1 hammer ABC GmbH2 screwdriver DEF Co KG
Das ist ein Join.
UNION bedeutet, dass Sie Tabellen oder Ergebnismengen mit der gleichen Anzahl und Art von Spalten erstellen müssen und diese zusammen zu Tabellen / Ergebnismengen hinzufügen müssen. Schauen Sie sich dieses Beispiel an:
Joins und Gewerkschaften können verwendet werden, um Daten aus einer oder mehreren Tabellen zu kombinieren. Der Unterschied liegt in der Kombination der Daten.
In einfachen Worten kombinieren Joins Daten zu neuen Spalten. Wenn zwei Tabellen miteinander verbunden sind, werden die Daten aus der ersten Tabelle in einem Satz von Spalten neben der Spalte der zweiten Tabelle in derselben Zeile angezeigt.
Gewerkschaften kombinieren Daten in neuen Zeilen. Wenn zwei Tabellen miteinander „verbunden“ sind, 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 sind im gleichen Ergebnis.
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 gemeinsamer Werte.
2. Der SQL UNION-Operator kombiniert das Ergebnis von zwei oder mehr SELECT-Anweisungen. Jede SELECT-Anweisung innerhalb der UNION muss dieselbe 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: Kunden in Tabelle 1 / Bestellungen in Tabelle 2
UNION kombiniert die Ergebnisse von zwei oder mehr Abfragen zu einer einzigen 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]
In der Zusammenfassung sind sie insofern ähnlich, als zwei Tabellen oder Ergebnismengen kombiniert werden, aber UNION dient wirklich dazu, Ergebnismengen mit der GLEICHEN ANZAHL DER SPALTEN mit den SPALTEN MIT ÄHNLICHEN DATENTYPEN zu kombinieren. Die STRUKTUR ist dieselbe, es werden nur neue Zeilen hinzugefügt.
In Joins können Sie Tabellen / Ergebnismengen mit jeder möglichen Struktur kombinieren, einschließlich eines kartesischen Joins, bei dem KEINE gemeinsam genutzten / ähnlichen Spalten vorhanden sind.
Die Vereinigungsoperation ist das kombinierte Ergebnis des vertikalen Aggregats der Zeilen, die Vereinigungsoperation ist das kombinierte Ergebnis des horizontalen Aggregats der Spalten.
Dies wirft die Frage auf - Join wird als "Join" und Union als unerklärliche "Combines" bezeichnet. Was denkst du, was du über andere hochgewählte 10-jährige Antworten hinaus hinzufügen würdest, die dies "nützlich" machen? (Rhetorisch.) Siehe den Mouseover-Text für den Abstimmungspfeil.
Antworten:
UNION
Setzt Zeilen aus Abfragen nacheinander, erstelltJOIN
ein kartesisches Produkt und unterteilt es - völlig andere Vorgänge. Triviales Beispiel fürUNION
:ähnliches triviales Beispiel für
JOIN
:quelle
UNION-JOIN
und wie ich es in Standard-SQL erreichen kann? Maria DB hat einen Befehlunion join
, andere Datenbanken jedoch nicht. Vielen Dank.Joins und Unions können verwendet werden, um Daten aus einer oder mehreren Tabellen zu kombinieren. Der Unterschied liegt in der Kombination der Daten.
In einfachen Worten kombinieren Joins Daten zu neuen Spalten . Wenn zwei Tabellen miteinander verbunden sind, werden die Daten aus der ersten Tabelle in einem Satz von Spalten neben der Spalte der zweiten Tabelle in derselben Zeile angezeigt.
Gewerkschaften kombinieren Daten in neuen Zeilen. Wenn zwei Tabellen miteinander „verbunden“ sind, 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 sind im gleichen 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 Spalten aus einer Tabelle mit Spalten aus 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 umfasst die Verwendung des Fremdschlüssels in einer Tabelle, um Spaltenwerte mithilfe des Primärschlüssels in einer anderen Tabelle nachzuschlagen.
Vergleichen Sie nun die obige Darstellung mit der einer Gewerkschaft. In einer Union stammt jede Zeile im Ergebnis aus einer Tabelle ODER der anderen. In einer Union werden Spalten nicht kombiniert, um Ergebnisse zu erstellen. Zeilen werden kombiniert.
Sowohl Joins als auch Unions können verwendet werden, um Daten aus einer oder mehreren Tabellen zu einem einzigen Ergebnis zu kombinieren. Sie gehen beide auf unterschiedliche Weise vor. Während ein Join zum Kombinieren von Spalten aus verschiedenen Tabellen verwendet wird, wird die Vereinigung zum Kombinieren von Zeilen verwendet.
Quelle
quelle
UNION kombiniert die Ergebnisse von zwei oder mehr Abfragen zu einer einzigen Ergebnismenge, 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 logischen Beziehungen zwischen den Tabellen abrufen. Verknüpfungen 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:
Ausgabe:
JOIN Beispiel:
Dadurch werden alle Zeilen aus beiden Tabellen ausgegeben, für die die Bedingung erfüllt
a.Id = b.AFKId
ist.quelle
Möglicherweise sehen Sie für beide die gleichen schematischen Erklärungen, diese sind jedoch völlig verwirrend.
Für die UNION:
Für JOIN:
quelle
FULL OUTER JOIN
das das gleiche ist wieUNION
, die Unterschiede habenBEITRETEN:
Ein Join wird zum Anzeigen von Spalten mit demselben oder unterschiedlichen Namen aus verschiedenen Tabellen verwendet. In der angezeigten Ausgabe werden alle Spalten einzeln angezeigt. Das heißt, die Spalten werden nebeneinander ausgerichtet.
UNION:
Der UNION-Set-Operator wird zum Kombinieren von Daten aus zwei Tabellen verwendet, die Spalten mit demselben Datentyp enthalten. Wenn eine UNION ausgeführt wird, werden die Daten aus beiden Tabellen in einer einzelnen Spalte mit demselben Datentyp gesammelt.
Beispielsweise:
Siehe die beiden folgenden Tabellen:
Um nun einen JOIN-Typ auszuführen, wird die Abfrage unten gezeigt.
Das ist ein Join.
UNION bedeutet, dass Sie Tabellen oder Ergebnismengen mit der gleichen Anzahl und Art von Spalten erstellen müssen und diese zusammen zu Tabellen / Ergebnismengen hinzufügen müssen. Schauen Sie sich dieses Beispiel an:
quelle
Das sind ganz andere Dinge.
Mit einem Join können Sie ähnliche Daten in verschiedenen Tabellen verknüpfen.
Eine Union gibt die Ergebnisse von zwei verschiedenen Abfragen als ein einziges Recordset zurück.
quelle
Union lässt zwei Abfragen wie eine aussehen. Joins dienen zum Untersuchen von zwei oder mehr Tabellen in einer einzelnen Abfrageanweisung
quelle
Joins und Gewerkschaften können verwendet werden, um Daten aus einer oder mehreren Tabellen zu kombinieren. Der Unterschied liegt in der Kombination der Daten.
In einfachen Worten kombinieren Joins Daten zu neuen Spalten. Wenn zwei Tabellen miteinander verbunden sind, werden die Daten aus der ersten Tabelle in einem Satz von Spalten neben der Spalte der zweiten Tabelle in derselben Zeile angezeigt.
Gewerkschaften kombinieren Daten in neuen Zeilen. Wenn zwei Tabellen miteinander „verbunden“ sind, 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 sind im gleichen Ergebnis.
quelle
Denken Sie daran, dass Union Ergebnisse zusammenführt ( SQL Server um sicher zu sein) (Feature oder Fehler?)
ID, Wert
1,3
ID, Wert, ID, Wert
1,3,1,3
quelle
UNION
vsUNION ALL
stackoverflow.com/questions/49925/…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 gemeinsamer Werte.
2. Der SQL UNION-Operator kombiniert das Ergebnis von zwei oder mehr SELECT-Anweisungen. Jede SELECT-Anweisung innerhalb der UNION muss dieselbe 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: Kunden in Tabelle 1 / Bestellungen in Tabelle 2
innere Verbindung:
ID, NAME, BETRAG, DATUM AUSWÄHLEN
VON KUNDEN
INNERE BEITRÄGE
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
Union:
ID, NAME, BETRAG, DATUM AUSWÄHLEN
VON KUNDEN
LINKS BEITRETEN
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
UNION
WÄHLEN SIE ID, NAME, BETRAG, DATUM VON KUNDEN
RECHTS BEITRETEN
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
quelle
Ussing UNION
UNION kombiniert die Ergebnisse von zwei oder mehr Abfragen zu einer einzigen Ergebnismenge, die alle Zeilen enthält, die zu allen Abfragen in der Union gehören.
Ussing JOINs
JOINs können Sie Daten aus zwei oder mehr Tabellen basierend auf logischen Beziehungen zwischen den Tabellen abrufen.
quelle
In der Zusammenfassung sind sie insofern ähnlich, als zwei Tabellen oder Ergebnismengen kombiniert werden, aber UNION dient wirklich dazu, Ergebnismengen mit der GLEICHEN ANZAHL DER SPALTEN mit den SPALTEN MIT ÄHNLICHEN DATENTYPEN zu kombinieren. Die STRUKTUR ist dieselbe, es werden nur neue Zeilen hinzugefügt.
In Joins können Sie Tabellen / Ergebnismengen mit jeder möglichen Struktur kombinieren, einschließlich eines kartesischen Joins, bei dem KEINE gemeinsam genutzten / ähnlichen Spalten vorhanden sind.
quelle
Der UNION-Operator dient nur zum Kombinieren von zwei oder mehr SELECT-Anweisungen.
Während JOIN zum Auswählen von Zeilen aus jeder Tabelle dient, entweder nach der inneren, äußeren, linken oder rechten Methode.
Siehe hier und hier . Es gibt eine bessere Erklärung mit Beispielen.
quelle
Die Vereinigungsoperation ist das kombinierte Ergebnis des vertikalen Aggregats der Zeilen, die Vereinigungsoperation ist das kombinierte Ergebnis des horizontalen Aggregats der Spalten.
quelle
Ich stelle mir den allgemeinen Unterschied gerne so vor:
quelle