Zum Inhalt springen

Verwandeln Sie Ihre Kontakte in Urlaubsgeld mit unserem neuen Kundenempfehlungsprogramm! Erfahren Sie mehr

Diese Dokumentation gilt für Version 4 und höher von App Builder, dem neuen Namen für Vinyl. Hier gelangen Sie zur Vinyl-Dokumentation.

So erstellen und verwenden Sie SQL-Joins und-Unions im Jitterbit App Builder

Beim Erstellen von Geschäftsobjekten in der Geschäftslogikschicht ist es oft erforderlich, 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 Geschäftsobjekten zu kombinieren und ein neues Geschäftsobjekt zu erstellen. Dieser Artikel führt Sie durch die vier Arten von SQL-Joins, die in App Builder unterstützt werden - Inner, Left Outer, Cross und Right Outer - und gibt Beispiele für deren Erstellung und Verwendung in App Builder. Darüber hinaus werfen wir einen Blick auf einen anderen Beziehungstyp namens Union, der unter Joins in App Builder konfiguriert werden kann.

  • Inner - Der Inner Join-Typ gibt Zeilen zurück, die in jeder Tabelle vorhanden sind
  • Kreuz - Der Kreuzverknüpfungspunkt 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
  • Rechts außen - Ein Rechts außen 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 die Ergebnismenge eines Inner Joins nur die Zeilen zwischen den beiden Tabellen, die basierend auf den Join-Spalten identisch sind.

Innerdiagram

Beispiel

Nehmen wir an, wir benötigen ein Geschäftsobjekt mit Kunden, die eine Bestellung aufgegeben haben, und den Details der Bestellung. Dies wäre ein hervorragender 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 Unten sind die beiden Tabellen Customer Und Order Wir werden uns anschließen.

Kundentabelle

Eine Bestelltabelle

Bevor Sie Ihren Inner Join erstellen, müssen Sie ein Geschäftsobjekt erstellen. Unser Geschäftsobjekt 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“ lautet CustomerID Dies ist die einzige identische Spalte zwischen beiden.

join1.png

Innercolumnstab

Innerjoinstab

Das Ergebnis sollte die Kunden enthalten, die Bestellungen aufgegeben haben. In diesem Fall ergaben unsere Daten eine Zeile:

Innerresults

Kreuzverbindung

Was ist ein Cross Join?

Ein Cross Join erzeugt eine Ergebnismenge, die sich aus der Anzahl der Zeilen x der ersten Tabelle multipliziert mit der Anzahl der Zeilen y der zweiten Tabelle ergibt. Die Ergebnismenge umfasst dann x * y Zeilen.

Um zu entscheiden, was bei einem Cross Join sinnvoll ist, empfiehlt es sich, zu berücksichtigen, dass die Ergebnismenge Spalten aus Tabelle 1 für jede Spalte aus Tabelle 2 enthält.

Kreuzdiagramm

Beispiel

Wir haben zwei Tische, Category Und Supplier Wir wissen, dass jeder Supplier möchte jeden Category, daher müssen wir ein Geschäftsobjekt erstellen, das diese beiden Tabellen kombiniert. Wir möchten ein Ergebnisset mit einem Category für jeden Supplier Dies ist ein perfektes Beispiel für die Verwendung eines Cross Join.

Nachfolgend finden Sie Beispieldatensätze für die Tabellen Category Und Supplier:

Kategoriedatensätze

Ein Lieferantendatensatz

Um diese beiden Tabellen zu verknüpfen, müssen wir ein neues Geschäftsobjekt erstellen. Wir haben es genannt Supplier (and Categories). Fügen Sie die beiden Tabellen, die wir kreuzverknüpfen möchten, in das Tabellenfenster ein. Geben Sie im Fenster „Joins“ an, dass Sie einen Kreuzverknüpfungsvorgang zwischen den beiden Tabellen durchführen möchten.

join2.png

A Kreuzspalten

Eine Kreuzverbindung

Hinweis

Wir müssen keine Join-Spalten angeben, da die beiden Tabellen beim Cross Join keine gemeinsamen Spalten haben müssen. Wir erhalten dennoch eine Category für jeden Supplier Nach der Implementierung dieses Joins sehen wir folgende Ergebnisse. Beachten Sie, dass es eine Category für jeden Supplier:

Kreuzergebnisse

Linker äußerer Join

Was ist ein Left Outer Join?

Ein Left Outer Join ruft alle übereinstimmenden Zeilen zweier Tabellen (die innere zwischen den beiden) sowie Zeilen ab, die mit keiner Zeile der zweiten Tabelle übereinstimmen. Dies ist nützlich, wenn Sie alle gemeinsamen Ergebnisse zweier Tabellen, aber auch die Nullwerte der linken Tabelle benötigen.

Ein leftouterdiagram

Beispiel

Sie benötigen möglicherweise eine Liste aller Kunden, unabhängig davon, ob sie eine Bestellung aufgegeben haben oder nicht. In diesem Fall wäre ein Left Outer Join ideal. Dieses Beispiel ähnelt dem vorherigen Inner Join-Beispiel, nur dass wir hier auch Ergebnisse anzeigen möchten, bei denen ein CustomerID aufgeführt ohne OrderID.

Die folgenden Tabellen verwenden wir: Customer Und Order Es handelt sich um dieselben Tabellen, die wir im Beispiel eines Inner Joins verwendet haben.

Kundentabelle

Eine Bestelltabelle

Diese Business-Objekt-Deklaration ähnelt stark dem Business-Objekt aus dem Beispiel „Inner Join“. Der einzige Unterschied besteht im Namen und in der Deklaration dieses Joins als „Left Outer“ statt als „Inner Join“.

join3.png

Innercolumnstab

A lo schließt sich an

Die Ergebnisse liefern die gleichen Ergebnisse wie beim Inner Join, zusätzlich zu den Zeilen in der Customer Tabelle, die keiner Zeile in der Order Tabelle.

Diesmal gibt es 92 Ergebnisse.

A lo results

Rechts außen

Was ist ein rechter äußerer Join?

Der dritte Join ist ein Right Outer Join, das genaue Gegenteil eines Left Outer Joins. Ob Sie den einen oder den anderen Join verwenden, spielt in der Regel keine Rolle, da Sie eine Tabelle jederzeit von der linken auf die rechte Seite des Joins verschieben können und so den gleichen Effekt erzielen. Die Ergebnisse variieren je nach gewähltem Join und der Reihenfolge der Tabellen, die im Join-Bereich hinzugefügt werden.

Ein RO-Diagramm

Beispiel

Beispiel: Wenn Sie 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 zeigt eine Möglichkeit, diese Logik zu konfigurieren.

join4.png

A ro Spalten

A ro schließt sich an

Wenn wir Ergebnisse ausführen oder die Quick Grid-Ergebnisse anzeigen, werden folgende Datensätze zurückgegeben:

A ro results

Union

Was ist eine Gewerkschaft?

Im App Builder erzeugen Union Joins eine Kombination aus zwei Select-Anweisungen, die auf dieselbe Spalte abzielen. Ein Union Join kombiniert die Ergebnisse zweier unterschiedlicher Spalten (mit gleichem Namen) aus zwei verschiedenen 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, während ein Union Join nur gemeinsame Spalten benötigt.

Beispiel 1

Beispielsweise ein Inner Join zwischen Product Und Supplier Tabellen würden jedes Produkt zusammen mit seinem Lieferanten anzeigen, während ein Union Join zwischen den Product Und Supplier Tabellen würden 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. Beachten Sie, dass bei Joins die gemeinsame Kontextnutzung und die gleiche Spalte zwei verschiedene Kriterien sind.

Im Folgenden sind die beiden Tabellen „Lieferant“ und „Produkt“ aufgeführt.

Ein Lieferant ergibt

Ein Produktergebnis

Jetzt können Sie Ihr Business-Objekt erstellen, das den Union Join verwendet. Wir haben unser Business-Objekt genannt: Supplier (Union with Product). Fügen Sie die Tabellen, die Sie verwenden möchten, in das Tabellenfenster ein. Deklarieren Sie im Fenster „Joins“ eine Union zwischen den beiden Tabellen. Auch für diesen Join ist keine Join-Spalte erforderlich. Das Fenster „Spalten“ erlaubt lediglich das Hinzufügen von SupplierID als Spalte, da es die einzige gemeinsame Spalte der beiden Tabellen ist.

join5.png

Eine Vereinigungsspalte

Eine Gewerkschaft tritt bei

Das Ergebnis enthält alle SupplierID's, einschließlich doppelter Datensätze, wenn die SupplierID erscheint in beiden Tabellen.

Eine Vereinigung ergibt

Beispiel 2

Ein weiterer Anwendungsfall für eine Union ist, wenn ein Kunde Sie auffordert, alle Antwortenden zu finden, die Benutzer aber auf verschiedene 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 Sie können jedes Mal sehen, wie sie reagiert haben.