So erstellen und verwenden Sie SQL-Joins und-Unions im Jitterbit App Builder
Beim Erstellen von Business-Objekten in der Business-Logik-Schicht ist es oft notwendig, auf zwei separate Tabellen zurückzugreifen, um Daten aus beiden anzuzeigen. Mit App Builder können Sie einen Join-Typ konfigurieren, um Spalten aus einer oder mehreren Tabellen oder Business-Objekten zu kombinieren und so ein neues Business-Objekt zu erstellen. Dieser Artikel führt Sie durch die vier Arten von SQL-Joins, die in App Builder- Innen, Links Außen, Kreuz und Rechts Außen - und geben Sie Beispiele für deren Erstellung und Verwendung in App Builder. Darüber hinaus werden wir uns auch einen anderen Beziehungstyp namens Union ansehen, der unter Joins in App Builder.
- Inner - Der Typ Inner Join gibt Zeilen zurück, die in jeder Tabelle vorhanden sind
- Cross - Der Cross Join erzeugt ein kartesisches Produkt
- Left Outer - Ein Left Outer Join gibt alle Zeilen aus der angegebenen linken Tabelle zurück, unabhängig von einer Übereinstimmung in der rechten Tabelle
- Right Outer - Ein Right Outer gibt alle Zeilen aus der angegebenen rechten Tabelle zurück, unabhängig von einer Übereinstimmung in der linken Tabelle
- Union - Kombiniert die Ergebnismenge von zwei oder mehr SELECT-Anweisungen
Innerer Join
Was ist ein Inner Join?
Inner Joins sind die am häufigsten verwendeten Joins. Bei zwei Tabellen enthält das Ergebnis eines Inner Joins nur die Zeilen zwischen den beiden Tabellen, die basierend auf den Join-Spalten gleich sind.
Beispiel
Nehmen wir an, wir möchten ein Geschäftsobjekt mit Kunden, die eine Bestellung aufgegeben haben, und den Einzelheiten der aufgegebenen Bestellung. Dies wäre ein großartiger Anwendungsfall für einen Inner Join, da ein Inner Join Datensätze an der Schnittstelle zweier Tabellen zurückgeben kann. Unser Ergebnissatz sollte alle CustomerID
das hat eine OrderID
Nachfolgend sind die beiden Tabellen Customer
Und Order
dem wir beitreten werden.
Bevor Sie Ihren Inner Join erstellen, müssen Sie ein Geschäftsobjekt erstellen. Unsers heißt Customer (with Order)
. Bringen Sie die beiden Tabellen in das Tabellenfenster. Implementieren Sie den Inner Join zwischen Customer
Und Order
Die Spalte „Join“ ist hier CustomerID
Dies ist die einzige Spalte zwischen den beiden, die gleich ist.
Der Ergebnissatz sollte die Kunden enthalten, die Bestellungen aufgegeben haben. In diesem Fall ergaben unsere Daten eine Zeile:
Kreuzverbindung
Was ist ein Cross Join?
Ein Cross Join erzeugt einen Ergebnissatz, der die Anzahl der Zeilen x in der ersten Tabelle multipliziert mit der Anzahl der Zeilen y in der zweiten Tabelle ist. Der Ergebnissatz wird x * y Zeilen haben.
Wenn Sie versuchen zu entscheiden, was bei einem Cross Join sinnvoll ist, ist es hilfreich zu sagen, dass der Ergebnissatz Spalten aus Tabelle 1 für jede Spalte in Tabelle 2 enthält.
Beispiel
Wir haben zwei Tische, Category
Und Supplier
. Wir wissen, dass jeder Supplier
möchte jeden Category
, also müssen wir ein Geschäftsobjekt erstellen, das diese beiden Tabellen kombiniert. Wir möchten einen Ergebnissatz mit einem Category
für jeden Supplier
. Dies ist ein perfektes Beispiel dafür, wann ein Cross Join verwendet werden sollte.
Unten finden Sie Beispieldatensätze für die Tabellen Category
Und Supplier
:
Um diese beiden Tabellen zu verknüpfen, müssen wir ein neues Geschäftsobjekt erstellen. Wir haben unseres genannt Supplier (and Categories)
. Fügen Sie die beiden Tabellen, die wir kreuzverknüpfen möchten, in das Tabellenfenster ein. Geben Sie im Verknüpfungsfenster an, dass Sie zwischen den beiden Tabellen kreuzverknüpfen möchten.
Hinweis
Wir müssen keine Join-Spalten angeben, da die beiden Tabellen beim Cross Join keine gemeinsamen Spalten haben müssen, um einen Join durchzuführen. Wir können trotzdem eine Category
für jeden Supplier
.
Nach der Implementierung dieses Joins werden wir Ergebnisse wie diese sehen. Beachten Sie, dass es ein Category
für jeden Supplier
:
Linker äußerer Join
Was ist ein Left Outer Join?
Ein Left Outer Join holt alle übereinstimmenden Zeilen zweier Tabellen (die innere zwischen den beiden) sowie Zeilen, die keiner Zeile in der zweiten Tabelle entsprechen. Dies ist nützlich, wenn Sie alle gemeinsamen Ergebnisse zweier Tabellen, aber auch die Nullwerte in der linken Tabelle haben möchten.
Beispiel
Vielleicht möchten Sie eine Liste aller Kunden, unabhängig davon, ob sie eine Bestellung aufgegeben haben oder nicht. In diesem Fall wäre ein Left Outer Join perfekt. Dieses Beispiel ähnelt dem vorherigen Inner Join-Beispiel, außer dass wir in diesem Fall auch Ergebnisse sehen möchten, bei denen es einen CustomerID
aufgeführt ohne OrderID
.
Nachfolgend sind die Tabellen aufgeführt, die wir verwenden: Customer
Und Order
. Es sind die gleichen Tabellen, die wir für das Beispiel eines Inner Join verwendet haben.
Diese Business-Objekt-Deklaration ist dem Business-Objekt des Inner-Join-Beispiels sehr ähnlich. Der einzige Unterschied besteht im Namen und darin, dass dieser Join als Left Outer und nicht als Inner Join deklariert wird.
Die Ergebnisse liefern uns dieselben Ergebnisse wie der Inner Join, plus die Zeilen in der Customer
Tabelle, die keiner Zeile in der Order
Tabelle.
Diesmal gibt es 92 Ergebnisse.
Rechts außen
Was ist ein rechter äußerer Join?
Der dritte Join ist ein Right Outer Join, der genau das Gegenteil eines Left Outer ist. Ob Sie den einen oder den anderen verwenden, spielt normalerweise keine Rolle, da Sie eine Tabelle immer von der linken auf die rechte Seite des Joins verschieben können und damit denselben Effekt erzielen. Die Ergebnisse variieren je nachdem, welchen Join Sie wählen und in welcher Reihenfolge die Tabellen zum Joins-Bedienfeld hinzugefügt werden.
Beispiel
Wenn Sie beispielsweise von einem Left Outer Join zu einem Right Outer Join wechseln möchten, möchten Sie möglicherweise alle Ihre Kunden mit oder ohne Bestellungen sowie alle Bestelldetails mit oder ohne Bestellungen oder Produkte anzeigen. Die folgende Deklaration ist eine Möglichkeit, wie Sie diese Logik konfigurieren können.
Wenn wir Ergebnisse ausführen oder die Quick Grid-Ergebnisse anzeigen, werden die folgenden Datensätze zurückgegeben:
Union
Was ist eine Gewerkschaft?
In App Builder, Union Joins erzeugen eine Kombination aus zwei Select-Anweisungen, die auf dieselbe Spalte abzielen. Ein Union Join kombiniert die Ergebnisse zweier unterschiedlicher Spalten (mit demselben Namen) aus zwei unterschiedlichen Tabellen zu einer einheitlichen Spalte. Während die meisten Joins eine Join-Spalte verwenden, ist dies beim Union Join nicht der Fall. Dies liegt daran, dass andere Joins einen gemeinsamen Kontext zwischen den beiden Tabellen benötigen, um zu funktionieren, ein Union Join jedoch nur gemeinsame Spalten erfordert.
Beispiel 1
Beispielsweise ein Inner Join zwischen den Product
Und Supplier
Tabellen würden jedes Produkt zusammen mit seinem Lieferanten anzeigen, während ein Union Join zwischen den Product
Und Supplier
Tabellen zeigen Ihnen eine Liste aller verschiedenen SupplierID
Felder. Dies liegt daran, dass der Union Join im Wesentlichen alle Ergebnisse aus derselben Spalte in zwei verschiedenen Tabellen anzeigt und diese beiden Tabellen nur die SupplierID
. Denken Sie daran, dass bei Joins das Teilen des Kontexts und das Vorhandensein derselben Spalte zwei verschiedene Kriterien sind.
Unten sind die beiden Tabellen Lieferant und Produkt.
Jetzt können Sie Ihr Business-Objekt erstellen, das den Union Join verwendet. Wir haben unseres genannt Supplier (Union with Product)
. Fügen Sie die Tabellen, die Sie verwenden möchten, in das Tabellenfenster ein. Deklarieren Sie eine Union zwischen den beiden Tabellen im Join-Fenster. Auch für diesen Join ist keine Join-Spalte erforderlich. Das Spaltenfenster erlaubt uns nur das Hinzufügen von SupplierID
als Spalte, da dies die einzige Spalte ist, die die beiden Tabellen gemeinsam haben.
Der Ergebnissatz enthält alle SupplierID
's, einschließlich doppelter Datensätze, wenn die SupplierID
erscheint in beiden Tabellen.
Beispiel 2
Ein weiterer Anwendungsfall für eine Union ist, wenn ein Client Sie auffordert, alle Antwortenden zu finden, die Benutzer jedoch auf mehrere Arten antworten können. Nehmen wir an, ein Benutzer kann per Email antworten, die in eine Tabelle namens EmailRespondants
, aber sie können auch per Telefonanruf antworten, indem sie die PhoneRespondant
Tabelle. Sie können die Tabellen zusammenfassen, um die gemeinsamen Spalten zu finden. Dies könnte sein: RespondantID
Und RespondType
um eine Liste aller Personen zu erhalten, die geantwortet haben und wie sie geantwortet haben. Auf diese Weise können Sie auch die gleichen RespondantID
mehrmals, aber sehen Sie jedes Mal, wie sie reagiert haben.