Zum Inhalt springen

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.

Innerdiagram

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.

Customertable

Eine Bestelltabelle

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.

join1.png

Innere Spaltentabelle

Innerjoinstab

Der Ergebnissatz 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 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.

Crossdiagram

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 Categoryfü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:

Kategoriedatensätze

Ein Lieferantendatensatz

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.

join2.png

A Kreuzspalten

Eine Querverbindung

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:

Kreuzergebnisse

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.

Ein leftouterdiagram

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.

Customertable

Eine Bestelltabelle

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.

join3.png

Innere Spaltentabelle

A lo schließt sich an

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.

A lo 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.

Ein ro-Diagramm

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.

join4.png

A ro Spalten

A ro schließt sich an

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

A ro results

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.

Ein Lieferant ergibt

Ein Produktergebnis

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.

join5.png

Eine Vereinigungsspalte

Eine Gewerkschaft tritt bei

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

Eine Vereinigung ergibt sich

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.