Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Grundkurs 1: Die Sprache erlernen

ANSI JOIN

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der ANSI-Join ersetzt mit ANSI SQL 99 den JOIN über die WHERE-Klausel. Diese Syntax ist weniger fehleranfällig und übersichtlicher bei komplexen Anweisungen. Das Video vermittelt den Einsatz des ANSI-JOIN am Beispiel der Beziehung zweier Tabellen - Artikel und Artikelgruppen.

Transkript

In diesem Video-Training zeige ich Ihnen die Verwendung des "ANSI JOINs". Dazu verwende ich die zwei Tabellen "Artikel" und "Artikelgruppen". Zwischen diesen zwei Tabellen besteht eine Beziehung. Als Fremdschlüssel-Spalte fungiert die Spalte "Gruppe" der Tabelle "Artikel", und diese verweist auf die Spalte "Art-Gr" der Tabelle "Artikelgruppen". Hier, in der Spalte "Gruppe", finden wir das Kürzel, welches auf den Primärschlüssel der zweiten Tabelle, der Tabelle "Artikelgruppen", verweist. In der Spalte "Gr-Text" finden wir den Langtext, den wir nun mit den Artikelinformationen gemeinsam ausgeben möchten. Beim "ANSI JOIN" wird die Art des "JOINs" direkt in der FROM-Klausel definiert. Wir beginnen also mit der ersten Tabelle, z.B. der Tabelle "Artikel", und folgen nun mit der JOIN-Anweisung, in dem Fall "INNER JOIN". Klassische Variante des "JOINs" ist der "INNER JOIN", bei dem ja aus beiden Tabellen jene Zeilen dargestellt werden, bei denen es Übereinstimmungen gibt. Nun gebe ich die zweite Tabelle an, die Tabelle "Artikelgruppen". Anders als beim "JOIN" über die WHERE-Klausel, wird beim "ANSI JOIN" die Bedingung direkt als Erweiterung der FROM-Klausel verwendet. "On", und hier kommt die JOIN-Bedingung, nämlich dass in der Spalte "Gruppe" das Gleiche enthalten sein soll, wie in der Spalte "Art-Gr". Jetzt kann ich, wie gewohnt, meine Einträge in der SELECT-Klausel vornehmen. Zum Beispiel die Artikelnummer, die Bezeichnung und nehmen wir nur den Gruppentext. Diesen versehen wir mit einem Alias-Namen, "As Gruppe", damit das sauberer dargestellt wird. Und nehmen noch den Einkaufspreis z.B. und den Verkaufspreis dazu. Die WHERE-Klausel hat jetzt beim "ANSI JOIN" nichts mehr mit dem "JOIN" zu tun. Das heißt, die WHERE-Klausel bleibt für ihre eigentliche Aufgabe zuständig, nämlich zu filtern. Z.B., dass der Verkaufspreis kleiner als 100 Euro sein soll. Ich sortiere das Ganze noch nach der Bezeichnung und schließe damit diese Anweisung ab. Ich führe diese Anweisung nun aus. Und wir sehen das Ergebnis, das gespeist wird aus zwei Tabellen. Bis auf die Spalte "Gr-Text", die mit dem Alias-Namen "Gruppe" versehen ist, stammen alle anderen Spalten aus der Artikel-Tabelle. Der Artikelgruppen-Text wird hier dazu gejoined. Und hier sehen wir auch das Prinzip der relationalen Datenbank. Zum Beispiel sehen wir hier mehrmals den Eintrag Heimwerken, der hier dazu gejoinet worden ist. Physisch gibt es diesen Eintrag nur einmal in der Tabelle "Artikelgruppen". Wenn Sie beim "ANSI JOIN" auf die JOIN-Bedingung vergessen, dann kann das nicht so wie beim "JOIN" über die WHERE-Klausel zu einem Kreuzprodukt führen. Sondern es kommt zu einer Fehlermeldung. D.h. in dem Fall ist es wirklich ein Syntax-Fehler, wenn die JOIN-Bedingung weggelassen wird. Das heißt, ich kann nicht unabsichtlich ein Kreuzprodukt hier generieren. Wenn man mittels "ANSI JOIN" wirklich einmal ein Kreuzprodukt haben möchte, dann kann man das nur dadurch erzielen, indem man es explizit durch den Begriff "CROSSJOIN" realisiert. Dann könnte ich es aber bewusst machen, es kann mir also nicht fälschlicherweise passieren. Das Schlüsselwort "INNER", das wir hier angegeben haben beim "JOIN", ist optional, D.h. Sie können es auch weg lassen. Ich persönlich empfehle, es aber immer hinzuschreiben, weil für mich die Lesbarkeit der Anweisung dadurch besser gegeben ist, und es mir persönlich daher besser gefällt. Aber das ist natürlich Geschmacksache und das können Sie selber für sich entscheiden, wie Sie das handhaben möchten. Sie sehen also, auch wenn Sie das Schlüsselwort Inner nicht verwenden, erzielen Sie das selbe Ergebnis. In diesem Video haben Sie also die Erstellung eines "ANSI JOINs" gesehen. Bei einem "ANSI JOIN" wird die Art des "JOINs" direkt in der FROM-Klausel zwischen den betroffenen Tabellen angegeben. Als Erweiterung wird hinter dem Schlüsselwort "On" direkt die JOIN-Bedingung ergänzt. D.h. das wen Sie joinen und wie Sie joinen, finden Sie alles in der FROM-Klausel. Die WHERE-Klausel hat mit dem "JOIN" nichts mehr zu tun, und dadurch bleibt die Anweisung auch übersichtlicher. Ein fälschlicherweise ungewolltes Kreuzprodukt können Sie auf diese Art und Weise nicht erzeugen.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!