Access: Abfragen mit SQL

Outer Join

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der OUTER JOIN ermöglicht es, gerade die Daten zu finden, die in einer anderen Tabelle nicht enthalten sind.

Transkript

Wenn wir zwischendurch noch einmal einen Blick auf das Datenmodell werfen, dann sehen Sie, dass es hier eine Stelle gibt, wo ich eine Tabelle mit Mitarbeitern habe, und einem mit Lehrern. Lehrer ist dann jemand, wenn er ein Instrument unterrichtet. Es gibt also Mitarbeiter, die Instrumente unterrichten. Die gelten als Lehrer. Und es bleiben welche übrig, die keine Instrumente unterrichten. Die möchte ich herausfinden. Vielleicht gucken wir uns erstmal an, wie viele Eintragungen in den jeweiligen Tabellen sind. Also hier bei den Mitarbeitern: Es gibt insgesamt 29 Mitarbeiter. Einige sind Lehrer, einige nicht. Und entsprechend gibt es bei den Lehrern 32. Das mag erstmal verwundern: Wenn einige Mitarbeiter keine Lehrer sind, wieso gibt es dann mehr Lehrer? Es gibt nicht mehr Lehrer, sondern, wie hier zu sehen: Willi Wichtig unterrichtet zwei Instrumente. Natürlich kann man, wie hier bei der 27, noch mehr Instrumente unterrichten. Die taucht hier sogar dreimal auf. Das heißt, einige von den Mitarbeitern sind sozusagen mehrfach Lehrer. Deswegen stehen hier 32 Lehrer bei nur 29 Mitarbeitern, von denen einige noch nicht mal Lehrer sind. Und die will ich herausfinden. Das bedeutet, ich muss erstmal die Beziehung zwischen denen angeben. Das ist im Moment noch der INNER JOIN, wenn ich das also ausführe, die Verbindung zwischen den beiden Tabellen "Mitarbeiter" und "Lehrer", sodass die Mitarbeiter-ID und die "LehrermitarIDRef" zusammenpassen. Damit können Sie genau nur die Lehrer sehen. Deswegen sind es hier ebenfalls 32 Datensätze. Willi Wichtig taucht hier zweimal auf, und ich kann jetzt hier nachgucken, welches Instrument er unterrichtet. Das will ich aber gar nicht wissen. Damit sind jetzt nämlich automatisch die Mitarbeiter raus, die gar keine Lehrer sind. Der INNER JOIN ist das Problem. Ich muss hier in einen OUTER JOIN wechseln. Der OUTER JOIN ist mehr die theoretische Formulierung, Sie müssen dazu immer LEFT oder RIGHT sagen. Und der LEFT-JOIN heißt, dass ich auf dieser Seite alle sehe. Und auf dieser Seite nur welche, wenn sie denn dazu passen. Sie werden also gleich auf dieser Seite Null-Werte sehen. Null-Datensätze müsste ich sogar sagen, welche, die es gar nicht gibt. Wenn ich jetzt hier aktualisiere, finde ich hier gleich zwei hintereinander. Michael Wallerich und Nicole Hernard haben kein Instrument. Und das lässt sich erst dann anzeigen, wenn aus dem INNER JOIN, der links und rechts das Gleiche als Wert haben muss, ein OUTER JOIN wird, in diesem Fall ein LEFT JOIN, der alle auf der linken Seite nimmt, und alle auf der rechten, wenn es denn welche gibt. Das ist die entscheidende Einschränkung: wenn es denn welche gibt. Wenn es keine gibt, dann steht da ein Null-Wert. Und darüber kann ich die jetzt noch genauer angeben. Ich kann also ein WHERE anhängen, und sagen, ich hätte gerne alle, die hier einen Null-Wert haben. Es ist praktisch egal, welches Feld ich als Null-Wert angebe. Ich nehme mal LehrerID. Also: für die, bei denen dieses Feld LehreID null ist, und wenn ich das jetzt.ausführe, habe ich hier tatsächlich die Liste aller Mitarbeiter, die keine Lehrer sind. Und im Grunde interessiert mich deren Nicht-Instrument gar nicht. Hier steht sowieso nichts, ich kann mir also diesen Teil sparen, dass ich die Lehrer-Daten anzeige, denn die müssen leer sein, das ist ja, was ich hier verlange, sodass es hier etwas übersichtlicher ist. Das sind jetzt also mit einem OUTER JOIN, in diesem Fall ein LEFT JOIN, alle Mitarbeiter, die keine Lehrer sind, deren Gegenstück auf der Verbindungstabelle also"null" ist.

Access: Abfragen mit SQL

Nutzen Sie die mächtige Abfragesprache SQL in Microsoft Access. Anhand einer Beispiel-Datenbank lernen Sie die Möglichkeiten und Finessen von SQL im Detail kennen.

3 Std. 14 min (64 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieses Training ist für alle Access-Versionen verwendbar. Das vermittelte SQL-Wissen lässt sich mit geringen Abweichungen auch für andere relationale Datenbanksysteme nutzen.

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!