Access 2016 Grundkurs

Outer Join

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Um auch Daten ohne Referenz in anderen Tabellen anzeigen zu können, nutzen Sie "Outer Joins". So lassen sich diejenigen Speisen finden, die noch niemals verkauft wurden.

Transkript

Wenn ich heraus bekommen will, welche Gerichte von meiner Speisekarte gut laufen, vielleicht sogar wie gut, dann ist das relativ einfach: Ich erstelle einen Abfrageentwurf, nehme die Speisen, erstmal nur die Speisen auf und gucke mal auf deren Menge also, Name kurz ist eindeutig genug, gucke mir die Ansicht an und zähle hier 18 Gerichte. Jetzt will ich wissen, wie gut die laufen, das heißt, ich muss mit der Portionierung zusammenarbeiten, also eine neue Tabelle aufnehmen, weil nur dort bei den Portionen nachzusehen ist, wie viele es gab, nämlich hier in portiMenge. Und will also für diesen Namen die Summe, deswegen muss ich das hier aktivieren, für portiMenge einschalten, das ginge auch mit einem Doppelklick hier und dann kann ich es gleich absteigend sortieren, das sind zwei Doppelklicks. Und kann jetzt hier in der Ansicht sehen Pizza Margarita, Spaghetti Bolognese, läuft super, Pizza Pollo und Penne con Agnello eher nicht. Das sind meine erfolgreichen Speisen und hier steht sogar, wie erfolgreich. Wenn sie jetzt hier unten kucken werden sie feststellen, aus den ursprünglich 18 Speisen sind nur Noch 16 übriggeblieben. Die kann ich schon mal speichern, das ist die qrySpeisenErfolgreich. Und stelle jetzt fest: Es gibt offenbar zwei Gerichte, die nicht so erfolgreich laufen, genau genommen nämlich gar nicht. Die zu finden, funktioniert plötzlich ganz anders. Sie haben gesehen, wenn ich hier die zweite Tabelle aufnehme, die Portionen nämlich, dann reduziert sich sofort die Anzahl der Datensätze. Da liegt das Problem. Und deswegen bau ich diese Abfrage neu auf, also erstellen Abfrageentwurf. Ich nehme wiederum Speisen, Doppelklick und Portion. Und auch hier wiederum Name kurz und dann nehme ich mal ausnahmsweise dieses Feld, damit sie das gleich deutlicher sehen nämlich den Fremdschlüssel. Jetzt sind noch alle Portionen da, ich muss die natürlich zusammenfassen, gruppieren, also wir können das erstmal so lassen. Hier sind genau diese 16 zu sehen, dies ist jetzt der Fremdschlüssel, nicht die Anzahl der verkauften Portionen, aber das Problem ist, dass hier die zwei fehlenden nicht erscheinen, jedenfalls nicht, bis ich was grundsätzlich geändert habe. Wenn ich in der Entwurfsansicht diesen Verbindungspfeil nehme und doppelklicke, dann sehen sie, was dahinter steckt, das ist ein sogenannter Inner Join, der Normalfall einer Beziehung. Den nenne ich auch schon mal symmetrisch, der hat links wie rechts die gleichen Werte. Alle Datensätze, bei denen die Inhalte der verknüpften Felder beider Tabellen gleich sind, wenn links eine Eins steht, dann muss rechts auch eine Eins stehen. Und das ist, was das implizite Filtern hier verursacht. Es gibt bestimmte Fremdschlüssel, die nie vorkommen, ich sag mal die Nummern 15 und 17. Und weil die Nummern 15 und 17 hier nie vorkommen, wird die auch auf dieser Seite nicht mehr angezeigt und das ist das, was den Filter ausmacht. Es gibt zwei Alternativen dazu, die beide Auto-Joins sind. Zum einen den left Auto-Join und den right Auto-Join, aber die Richtung ist eigentlich nicht so wichtig, hier dieser Satz sagt das Wesentliche, ich will entweder alle Speisen oder alle Portionen sehen. Und wenn es dazu Gegenstücke mit Lücken gibt. dann eventuell auch. Also ich kann sehen, alle Speisen, alle 18, um es schon mal zu erwähnen, und wenn es dort eine Portion gibt dann ist das in Ordnung. Wenn nicht, steht da eben ein Null-Wert. Ich könnte alternativ auch verlangen, alle Portionen und falls es bei den Speisen kein Gegenstück gibt, dann stünde dort ein Null-Wert. Dank unserer referentiellen Integrität ist das völlig ausgeschlossen, denn das wäre ein verwaister Datensatz, ein Fremdschlüssel ohne Gegenstück, das ist durchaus typisch in einer Datenbank mit referentieller Integrität, dass eine von den beiden, die wechseln schon mal die Reihenfolge, nicht funktionieren darf. Was ich also haben möchte, ist alle Speisen, egal ob es eine Portion dazugibt. Und nach dem okay gucken wir uns das gleiche nochmal an, sie sehen jetzt, da ist ein Pfeil entstanden und da sind jetzt tatsächlich alle 18 Speisen und zwei davon haben keinen Fremdschlüssel, den sie anzeigen können. Und die hätte ich gern. Das heißt, ich kann jetzt filtern, da steht nämlich ein Null-Wert drin. Es gibt kein Gegenstück, es ist also nichts dort und deswegen werde ich jetzt auf Null filtern. Damit bleiben diese beiden übrig und da es auf dieser Seite auch nichts zu gruppieren gab, es gibt keine mehreren Portionen, kann ich sogar, das beschleunigt nämlich wieder, auch wenn man das bei zwei Datensätzen sowieso nicht merkt, kann ich jetzt auch die Gruppierung wieder rausnehmen und sehe jetzt hier tatsächlich das sind die beiden Speisen, die nicht laufen. Und im Grunde kann ich auch hier die Anzeige entfernen, da gibt es nichts anzuzeigen außer einem Null-Wert und das ganze sind jetzt qrySpeisenErfolglos. Also der Unterschied zwischen einem normalen inner Join oder einem von den beiden Auto-Joins, besteht darin, dass sie hier einEN Doppelklick auf die Zwischenlinie machen und sich für nochmal zwei oder drei entscheiden und das bedeutet dann, dass auf einer der beiden Seiten Null-Werte erscheinen dürfen und die können Sie dann, meistens möchte man nur die haben, wegfiltern.

Access 2016 Grundkurs

Erwerben Sie die notwendigen Kenntnisse, um mit Access 2016 leistungsfähige Datenbanken zu erstellen.

6 Std. 18 min (75 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!